Introduction to Netflix Genie
1. Overview In this tutorial, we're going to explore the Genie engine, which Netflix developed for submitting jobs to clusters in an abstract way. Basic knowledge about big data processing, for example...
View ArticleFibonacci Series in Java
1. Overview In this tutorial, we'll look at the Fibonacci series. Specifically, we'll implement three ways to calculate the nth term of the Fibonacci series, the last one being a constant-time...
View ArticleJava Weekly, Issue 310
1. Spring and Java >> Don’t expose your JPA entities in your REST API [thoughts-on-java.org] We can't fully avoid coupling, but mixing web and persistence layers is almost always a bad choice....
View ArticlePrim’s Algorithm
1. Introduction In this tutorial, we first learn what minimum spanning trees are. Afterward, we'll use Prim's algorithm to find one. 2. Minimum Spanning Tree A minimum spanning tree (MST) is a...
View ArticleGuide to Monitoring Disk Usage on Linux
1. Introduction In this tutorial, we'll explore several Linux tools to monitor disk space. 2. Filesystems and Mounts First, it's important to understand the difference between filesystems and mounts....
View ArticleCheck if Two Strings are Anagrams in Java
1. Overview According to Wikipedia, an anagram is a word or phrase formed by rearranging the letters of a different word or phrase. We can generalize this in string processing by saying that an anagram...
View ArticleClean Coding in Java
1. Overview In this tutorial, we'll go through clean coding principles. We'll also understand why clean code is important and how to achieve that in Java. Further, we'll see if there are any tools...
View ArticleHow to Create a Maven Plugin
1. Introduction Maven offers a great variety of plugins to help us with the build of our project. However, we may find cases where these plugins are not enough and we have to develop our own. Luckily,...
View ArticleOverview of Combinatorial Problems in Java
1. Overview In this tutorial, we'll learn how to solve a few common combinatorial problems. They are most likely not very useful in an everyday job; however, they're interesting from the algorithmic...
View ArticleA Quick Guide to Timeouts in OkHttp
1. Overview In this quick tutorial, we'll focus on different types of timeouts we can set for the OkHttp client. For the more general overview of the OkHttp library, check our introductory OkHttp...
View ArticleOverview of Combinatorial Problems in Java
1. Overview In this tutorial, we'll learn how to solve a few common combinatorial problems. They are most likely not very useful in an everyday job; however, they're interesting from the algorithmic...
View ArticleAdding Shutdown Hooks for JVM Applications
1. Overview It's typically easy to start-up a service. However, sometimes we need to have a plan for gracefully shutting one down. In this tutorial, we're going to take a look at different ways a JVM...
View ArticleRuntime.getRuntime().halt() vs System.exit() in Java
1. Overview In this tutorial, we'll look into System.exit(), Runtime.getRuntime().halt(), and how these two methods compare with each other. 2. System.exit() The System.exit() method stops the running...
View ArticleError Handling with Spring AMQP
1. Introduction Asynchronous messaging is a type of loosely-coupled distributed communication that is becoming increasingly popular for implementing event-driven architectures. Fortunately, the Spring...
View ArticleOrganizing Layers Using Hexagonal Architecture, DDD, and Spring
1. Overview In this tutorial, we'll implement a Spring application using DDD. Additionally, we'll organize layers with the help of Hexagonal Architecture. In the end, our application will expose a...
View ArticleJava Weekly, Issue 311
1. Spring and Java >> State of Valhalla [openjdk.java.net] A well-worth reading update to Project Valhalla and the future of Java. >> Java Microservices: A Practical Guide [marcobehler.com]...
View ArticleCucumber Background
1. Overview In this short tutorial, we're going to learn about Cucumber Backgrounds, which is a feature that allows us to execute some sentences for each test of a Cucumber Feature. 2. Cucumber...
View ArticleJava Default Parameters Using Method Overloading
1. Overview In this short tutorial, we'll demonstrate the use of method overloading to simulate default parameters in Java. Here, we say simulate because unlike certain other OOP languages (like C++...
View ArticleObject-Oriented-Programming Concepts in Java
1. Overview In this article, we'll look into Object-Oriented Programming (OOP) concepts in Java. We'll discuss classes, objects, abstraction, encapsulation, inheritance, and polymorphism. 2. Classes...
View ArticleVarious Logging Levels in Hibernate
1. Overview Since Hibernate handles the interaction with the database for us, we're able to develop database-related code quickly. But, this can make debugging database-related failures difficult....
View Article