Below you will find pages that utilize the taxonomy term “Java”
Posts
Simplify Error Handling In Apache Beam With Asgarde
As a data engineer, you’re likely familiar with the challenges of error handling in Apache Beam Java applications. Traditional approaches can lead to verbose code, making it difficult to read and maintain. The Asgarde library offers a solution by providing a way to write less code and produce more concise and expressive code.
What is Asgarde?
Asgarde is an open-source library that simplifies error handling in Apache Beam Java applications. It accomplishes this by wrapping common error handling patterns into reusable components.
read morePosts
Java 20 Features
Java 20 was released on March 21, 2023. It is a short-term release supported for six months, following the September 20 release of JDK 19. JDK 21, due in September, will be a long-term support (LTS) release, backed by multiple years of support.
New features in Java 20:
Record Patterns (Second Preview): This feature enhances the Java programming language with record patterns to deconstruct record values. Record patterns and type patterns can be nested to enable a powerful, declarative, and composable form of data navigation and processing.
read morePosts
Java VMs
OpenJDK is the reference implementation of the Java Virtual Machine (JVM). It is free and open-source, and is available for a variety of platforms. Oracle JDK is a commercial implementation of the JVM. It is developed and supported by Oracle, and includes additional features and performance optimizations over OpenJDK. GraalVM is a high-performance JVM that is designed for modern applications. It includes a number of features that can improve the performance of Java applications, such as ahead-of-time (AOT) compilation and native image generation.
read morePosts
Java Bytebuffers
There are several reasons why you should use Java ByteBuffers:
Efficiency: ByteBuffers are very efficient for data manipulation and I/O operations. They can be used to read and write data directly to and from memory, without the need to copy the data to and from an intermediate buffer. This can significantly improve performance, especially for large data sets. Flexibility: ByteBuffers are very flexible and can be used to represent a wide variety of data types, including integers, floats, strings, and even binary data.
read morePosts
Chronicle Queue and Aeron
Chronicle Queue and Aeron are both high-performance messaging systems, but they have different strengths and weaknesses.
Chronicle Queue is designed for low latency and high throughput messaging within a single machine or cluster. It uses a shared memory ring buffer to store messages, which can achieve very low latency (<1 microsecond) for messages that are sent and received on the same machine. Chronicle Queue also supports persistence, so messages can be written to disk and recovered in the event of a crash.
read morePosts
Java 17 Features
Pseudo-Random Number Generators (PRNGs) are getting a major update in Java with the release of JEP 356. New interfaces and implementations make it easier to use different algorithms interchangeably and offer better support for stream-based programming. This is a great improvement for Java developers who require randomness in their applications. The JDK is constantly evolving and improving, and part of that process is ensuring that internal APIs are properly encapsulated. JEP 403 represents a step in that direction, by removing the –illegal-access flag.
read morePosts
Calling Native Libraries from Java
A couple of options I’ve used and seen: Java Native interface - watch out for segfaults! Project Panama - early access GraalVM - still really new. zt-exec - call the native library as an external process remotetea - an old favourite if it’s legacy C++ code
read morePosts
Latency Sensitive Microservices
Great talk by by Peter Lawrey regarding latency in micro-services. https://www.infoq.com/presentations/latency-sensitive-microservices/
read morePosts
How to get GXT explorer running in Eclipse
Download the latest jars from http://www.sencha.com/products/extgwt/download/ Follow the “setup.txt” create a eclipse project. Add all the folders in samples/**/src as source folder Expand the samples/examples.war into the “war” folder in your eclipse dir Delete the old “gxt.jar” from the WEB-INF/lib and replace with the gxt-2.2.3-gwt22.jar (seems like an old version is bundled with the samples.war) Run As, Web app, explorer.html, cross fingers…
read morePosts
Coherence in the real world
This has really helped in the Coherence projects I’ve been working on. Nothing quite like real world experience. More resources here.
read more