-
Java in Education: Combining Java with Raspberry Pi and the Pi4J Library
Although a lot of universities and high schools focus on Python and C# in their program, there are luckily a lot of others who go “full Java”.
Don’t get me wrong, I definitely don’t want to start a “programming-languages-war”, but Java is the language I used myself more than any other for the last 10 years.
Setting up a new project or building a proof-of-concept for a new idea, is a matter of hours. And there is always a solution for the problem I need to solve.
This is probably true for each developer who has enough experience in the language used the most. But having used and experimented with many other languages, I still keep returning to my “one true love”, being Java, as it always delivers the result I’m aiming for, with the right amount of code to be readable, understandable, and testable!
-
Optimizing Relational Database Access
PostgreSQL’s protocol is currently at version 3, and there are concerns about improving the protocol in this regard.
The V4 wire protocol changes and the wanted features for V4 documents share concerns about version 4 with pipelining and multiplexing in mind. PostgreSQL also has a proposed feature called Protocol hooks that decouples PostgreSQL from the current protocol. It aims to provide extensibility of the wire protocol. Such a feature could be an enabler for multiplexing.
It took 25 years to deliver HTTP/2 and introduce multiplexing to increase performance drastically. Most database protocols have not followed the same path yet and remain in the stone age of connection pooling (at least databases with an openly documented protocol).
Multiplexed database protocols could improve performance, and make connection pools a thing of the past. It would also provide the foundation for efficient data streaming from databases.
-
BlockHound: How It Works
BlockHound will transparently instrument the JVM classes and intercept blocking calls (e.g., IO) if they are performed from threads marked as “non-blocking operations only” (ie. threads implementing Reactor’s NonBlocking marker interface, like those started by Schedulers.parallel()).
If and when this happens (but remember, this should never happen!), an error will be thrown.
-
JavaFX: June 2021 Community Update
In order for any technology to grow and improve, community support and feedback are paramount.
To get a general idea of what the community would like to see in JavaFX in the future, I have asked developers to share their thoughts. The collated results are given below.
Each entry also includes links to open-source libraries and other resources that may provide (or help develop) some of the necessary functionalities.
-
Open Source Tools as an Opportunity for SMEs to Use AI?
Time-traveling cyborgs and robots that are able to love. These interesting and romantic ideas emerged from the imagination of Hollywood film directors.
Nevertheless, many people are afraid of Artificial Intelligence (AI). This also can be seen in the economic world.
Small and medium-sized enterprises (SMEs), in particular, see AI as a threat to their own business. Surprisingly however, all different-sized companies are able to see the potential of AI when it comes to penetrating the national and global market.
-
A Close Look at Kotlin’s Delegation
Kotlin offers many exciting features. In general, developers tend to cite null safety as their favorite. For me, it’s function extensions. But delegation comes a close second.
-
Hazelcast, from Embedded to Client-Server
Java developers are particularly spoiled when using Hazelcast. Because Hazelcast is developed in Java, it’s available as a JAR, and we can integrate it as a library in our application.
Just add it to the application’s classpath, start a node, and we’re good to go. However, I believe that once you start relying on Hazelcast as a critical infrastructure component, embedding limits your options. In this post, I’d like to dive a bit deeper into the subject.
-
Your own custom Spring Data repository
Functional Programming is becoming more and more popular. Spring provides a couple of DSLs for the Kotlin language. For example, the Beans DSL and the Routes DSL allow for a more functional approach toward Spring configuration. On the type side, Vavr (previously Javaslang) is pretty popular in Java, while Kotlin has Arrow.
In this post, I’d like to describe how one can use Arrow’s type system with Spring Data. Ultimately, you can benefit from the explanations to craft your custom Spring Data repository.
-
Kicking Spring Native’s Tires
I’ve been playing with GraalVM Ahead-Of-Time compilation capability since I became aware of it.
As a long-time Spring aficionado, I carefully monitored the efforts that the engineers at Tanzu have put into making Spring AOT-compatible. Recently, they announced the beta version of the integration.
In this post, I want to check how easy it is to produce a (working!) Docker image from an existing Spring Boot application.
-
High Performance Rendering in JavaFX
In this article, we comparatively evaluate four different approaches to render particles in JavaFX in terms of runtime performance.
The approaches are Canvas, PixelBuffer AWT, PixelBuffer CPU and PixelBuffer GPU.
The evaluation suggests the following order of approaches from fastest to slowest:
– PixelBuffer GPU (fastest).
– PixelBuffer CPU.
– PixelBuffer AWT.
– Canvas (slowest).