Author: Gobinath Loganathan

IntelliJ Idea: the famous IDE for JVM languages including Java, Scala, and Kotlin. If you don’t have it installed, follow Install IntelliJ IDEA on Linux to install the latest IntelliJ Idea. This article lists a few things to do after installing IntelliJ IDEA to boost your productivity. Wait! Isn’t IntelliJ Idea ready to be used out of the box? There is no doubt about the capability of IntelliJ Idea; of course, it can handle your project without any tweaks and customization. However, this article shows you how I customize my IntelliJ Idea for better productivity. All you have to do is…

Read More

Security and data protection are inevitable in the software world. Most companies set up proxies to limit access to the public internet. Though it is a common practice, sometimes proxies make the developer’s life harder. As a developer, you may not be able to access the required resources without configuring proxy settings in all the places. The How to Set Proxy for Maven? article explains how to use Apache Maven in the command line, IntelliJ IDEA, and Eclipse behind a proxy. This article explains how to configure a proxy for IntelliJ and how to prevent the annoying “Untrusted Server’s Certificate”…

Read More

Collecting garbage is a messy business both in the real world and the programming world. Garbage collection is still one of the root causes of many bugs in low-level languages such as C. It is also a reason why modern languages like Java or Rust provide solutions to automatically handle garbages. Though modern languages do not expect every developer to be aware of memory usage and garbage collection, understanding what is garbage collection and the impact of garbage collection will help you optimize your code and Java Virtual Machine. This article introduces what is garbage collection and why it is…

Read More

If you are reading this post, I hope you have already faced the error: “Create Artifact Container failed: Artifact storage quota has been hit. Unable to upload any new artifacts”. If not and if you are about to set up GitHub actions for your repository, read this article before you start. It is better to manage your GitHub artifact storage quota wisely. Otherwise you will have to wait for the next billing cycle for a quota reset and keep your CI/CD blocked. What is GitHub Artifact Storage Quota? GitHub: the famous code hosting platform stretches beyond being just a hosting…

Read More

Unlike setting up an HTTP cluster, setting up an Apache NiFi cluster with SSL enabled in Docker introduces a new challenge: Hostname verification. Don’t worry we got you covered on how to run Apache NiFi Cluster in Docker with SSL enabled. However, let’s understand the problem first. For added security, if HTTPS connections are enabled, Apache NiFi will verify the Hostname of requests. Therefore each request sent to Apache NiFi must have a predefined hostname. Not only the external requests, but peer-to-peer communication of NiFi nodes in a cluster also go through HTTPS and are subject to hostname verification. If…

Read More

If your computer connects to the Internet through a proxy server, Apache Maven has to be configured with the proxy settings to connect to the public Maven repository. Without the proxy setting, most likely Apache Maven will throw timeout errors when attempting to resolve dependencies. This issue can also propagate into your IDEs such as Eclipse or IntelliJ IDEA. This article explains how to set proxy for Maven and update those changes in both IntelliJ IDEA and Eclipse. Set Proxy in settings.xml Step 1:Open the settings.xml file from the following location. If you do not have this file already, skip…

Read More

With the advancement of containerization and microservices, the idea of distributing all dependencies in s separate library folder is fading away. Instead, developers prefer to create a fat JAR using Maven so that they don’t have to worry about missing a dependency. Note that sometimes the fat JAR is also referred to as Uber JAR or JAR with dependencies. This article introduces you Apache Maven Shade plugin to create a fat JAR using Maven. Requirements Create a New Maven Project Step 1:Create a new Maven project in IntelliJ Idea with the group id: com.javahelps.maven and artifact id: maven-fat-jar. Step 2:Add…

Read More

In the series of Presto SQL articles, this article explains what is Presto SQL and how to use Presto SQL for newbies. Presto is a high-performance, distributed SQL query engine for big data. Its architecture allows users to query a variety of data sources such as Hadoop, AWS S3, Alluxio, MySQL, Cassandra, Kafka, and MongoDB. One can even query data from multiple data sources within a single query. Let’s begin with what is Presto. Presto is a massively parallel programming engine that allows users to execute against any database. If you define a database as software that stores data and…

Read More

Every Scala developer out there knows SBT is the default build tool for Scala but there may be some situations limiting you to sticking with the famous build tool for Java: Apache Maven. Haven’t come across a reason to use Maven for Scala projects yet? Keep using SBT. However, if your team is using Apache Maven because it works well with their CI server or because they have a well-established development environment with Apache Maven, you have no choice and this article is here to help you. Requirements After installing IntelliJ IDEA and Apache Maven, set up Scala in IntelliJ…

Read More

SQL Join is one of the most important and expensive SQL operations and requires deep understanding from database engineers to write efficient SQL queries. From database engineers’ perspective, understanding how the JOIN operation works helps them to optimize them for efficient execution. This article, explains the JOIN operations supported in the open-source distributed computing engine: Presto SQL. This article was written when TrinoDB was called Presto SQL. It’s been a while and the supported JOINs might have changed. Almost all well-known databases support the following five types of joins: Cross Join, Inner Join, Left Join, Right Join, and Full Join.…

Read More