GitHub Pages vs Netlify: Comparing Free Static Site Hosting
GitHub Pages vs Netlify: Comparing Free Static Site Hosting When it comes to hosting static websites for free, GitHub Pages and Netlify are the two mo...
Linux, Java, Open Source related how-to articles. Expert tutorials on system administration, programming, security, and DevOps best practices.
Linux, Java, Open Source related how-to articles. Expert tutorials on system administration, programming, security, and DevOps best practices.
GitHub Pages vs Netlify: Comparing Free Static Site Hosting When it comes to hosting static websites for free, GitHub Pages and Netlify are the two mo...
How to Choose a Programming Language as a Beginner in 2026 Choosing your first programming language is one of the most common dilemmas for aspiring de...
How to Host Your Site for Free on Netlify Netlify is a powerful platform for hosting static websites and modern web applications. It offers a generous...
How to Host Your Site for Free on GitHub Pages GitHub Pages provides free hosting for static websites directly from a GitHub repository. Whether you'r...
How to Migrate a Site from Jekyll to Eleventy (11ty) Jekyll has been a popular static site generator for years, especially for GitHub Pages. However, ...
How to Create a Site with Eleventy (11ty) Eleventy (11ty) is a simple, fast, and flexible static site generator built with JavaScript. Unlike other st...
How to Convert WordPress to Jekyll WordPress is a popular content management system (CMS) that powers millions of websites. It is a great platform for...
In the realm of natural language processing (NLP), embeddings play a pivotal role in representing textual data in a numerical format that machine lear...
In the field of natural language processing (NLP), embeddings play a crucial role in representing text data in a numerical format that machine learnin...
In the realm of networked storage solutions, NFS (Network File System) stands out as a robust and efficient option for sharing files and directories a...
Javelin is a powerful static site generator that allows you to create fast, modern, and highly customizable websites with ease. With its intuitive syn...
Vim, short for Vi IMproved, is a powerful and highly customizable text editor that has been a favorite among developers, sysadmins, and power users fo...
In the realm of system administration, data analysis, and software development, the Linux command line is a powerful tool for text processing. With a ...
In today's interconnected world, instant messaging and real-time communication have become integral parts of both personal and professional interactio...
In the realm of operating systems, memory management is a fundamental aspect that directly impacts system performance, resource utilization, and overa...
In today's fast-paced digital landscape, ensuring high availability and optimal performance of web applications is paramount. Load balancing plays a c...
Introduction Welcome to our beginner's guide on how to use the Vi text editor effectively. If you're new to the world of programming or system adminis...
Introduction Welcome to the world of Linux, a powerful, open-source operating system that powers a significant portion of the internet, corporate serv...
Introduction In the world of networking, the Domain Name System (DNS) plays a pivotal role in ensuring seamless communication between computers. It tr...
Introduction In today's digital age, privacy and security are paramount. One of the most effective ways to protect your online privacy is by using a V...
Introduction In the world of networking, Linux has carved a niche for itself due to its robustness, security, and versatility. One of the most powerfu...
Introduction In the world of networking, file sharing is a fundamental aspect that enhances collaboration and productivity. One of the most popular me...
Introduction Welcome to our comprehensive guide on understanding and using the Linux boot process. If you're a beginner in the world of Linux, this po...
Introduction Welcome to our comprehensive guide on configuring a Dynamic Host Configuration Protocol (DHCP) server. If you're a beginner in the world ...
Introduction In the digital age, having a web presence is crucial for businesses and individuals alike. One of the key components of this presence is ...
Introduction Linux system logs provide a wealth of information about your computer's activities. They are essential for system administrators and deve...
Introduction Welcome to our comprehensive guide on setting up a database server with MySQL. If you're a beginner in the world of databases, this post ...
Introduction In the digital age, privacy and security are paramount. One way to ensure these is by using a proxy server. A proxy server acts as an int...
Introduction Linux, an open-source operating system, is renowned for its robustness, flexibility, and security. One of the key aspects that contribute...
Introduction FTP, or File Transfer Protocol, is a standard network protocol used for the transfer of computer files between a client and server on a c...
Introduction Welcome to our comprehensive guide on using the Linux command line for file management. If you're a beginner, you might find the Linux co...
Introduction Docker is a revolutionary tool that has transformed the way we develop, deploy, and distribute software applications. It allows developer...
Introduction Containers have revolutionized the way we develop, package, and deploy applications. They provide a consistent and reproducible environme...
A Beginner's Guide to Creating and Persisting Changes in Docker Containers Introduction Docker is a revolutionary open-source platform that allows dev...
A Beginner's Guide to Setting Up a Mail Server with Postfix Introduction In the digital age, email communication has become a vital part of our daily ...
A Beginner's Guide to Setting Up a Secure SSH Server Introduction Secure Shell (SSH) is a cryptographic network protocol that allows secure remote log...
A Beginner's Guide to Understanding and Using Linux File Permissions Introduction Linux, a powerful and versatile operating system, is known for its h...
A Beginner's Guide to Using the Linux Terminal Introduction The Linux terminal, also known as the command line, is a powerful tool that can seem daunt...
A Beginner's Guide to Configuring a Firewall Using iptables Introduction In the world of network security, a firewall is a crucial component that help...
A Beginner's Guide to Installing and Configuring a LAMP Stack Introduction In the world of web development, the term "LAMP" is an acronym that stands ...
In Spring Boot, beans are managed objects that are instantiated, assembled, and otherwise managed by the Spring IoC (Inversion of Control) container. ...
In Java, mutable members (variables whose values can change after object creation) should not be stored or returned directly from a class when dealin...
Quartz is a popular Java library for scheduling and managing jobs or tasks in applications. It allows you to schedule jobs to run at specific times o...
To create an application in Java for preventing stressful moments in life, we can integrate ChatGPT to provide users with helpful tips, techniques, a...
Choosing the best Linux distribution depends on your specific needs and preferences. In the following view I explain how 20+ years of experience wi...
In Java, a Provider is a class or interface that provides a way to obtain or create instances of a specific type or service. It is a concept that is ...
In Java, a supplier is a functional interface from the Java.util.function package that represents a supplier of results. It does not take any argumen...
To create an RPM package from a directory such as /opt/asd in SuSE, you can follow these general steps: First, you need to install the RPM build t...
AtomicStampedReference is a class in Java that provides atomic operations on a reference object along with a stamp or version number. It is typically...
Using a private Docker registry offers several benefits: Improved security: With a private Docker registry, you have full control over the contain...
Docker image registries are central repositories that store and distribute Docker container images. Docker container images are the building blocks o...
Docker Swarm is a native container orchestration solution provided by Docker for managing and scaling containerized applications across a swarm of Do...
Docker Compose is a tool that allows you to define, configure, and run multi-container Docker applications using a YAML file. It provides an easy way...
Docker volumes are a way to persist and manage data in Docker containers. A Docker volume is a directory or a named volume that is stored outside of ...
Docker networks are virtual networks that provide communication channels for Docker containers to communicate with each other and with the host syste...
In Docker, port mapping (also known as port forwarding) is the process of associating a port on the host system with a port on a Docker container, al...
In Docker, a file system mapping refers to the process of associating a directory or a file from the host system with a directory or a file inside a ...
Reflection in Java is a mechanism that allows you to inspect and modify the behavior of classes, methods, interfaces, and fields at runtime, even if ...
H2Database (or simply H2) is an open-source, lightweight, and fast relational database management system written in Java. It is a pure Java database ...
The static keyword is often overused in Java and this can lead to several risks, including: Tight Coupling: When you declare a member (variable or...
The first step in a malicious hacker attack is scanning. This means that an attacker will scan its target for open ports and vulnerabilities. So, the...
Lambdas are a concise way to define and use functional interfaces in Java. Here are some guidelines on how to use lambdas effectively in Java: Kno...
In Java, a predicate is a functional interface from the java.util.function package that represents a function that takes in one argument and returns ...
In Maven, you can manage dependencies using a pom.xml file. Here's how you can add dependencies to your pom.xml file: Open your pom.xml file in a ...
Polymorphism in Java is a concept that allows objects of different classes to be treated as if they were of the same type. It allows you to write cod...
The removeIf() method is a default method introduced in Java 8 for the Collection interface. It is used to remove all elements from the collection th...
The AutoCloseable interface is a functional interface introduced in Java 7 that defines a single method called close(). This interface is used to ens...
In Java, a resource leak occurs when a program fails to properly release system resources after they are no longer needed. This can lead to a range o...
Making methods final in Java can provide several benefits, including: Preventing method overriding: When a method is marked final, it cannot be ov...
Serializing and deserializing data in Java can introduce several security risks if not implemented properly. Here are some of the main risks: Remo...
In Java, a PreparedStatement is a feature of the JDBC API that allows you to execute parameterized SQL statements. A PreparedStatement is a precompil...
Hystrix is a library created by Netflix that provides fault tolerance and latency tolerance for distributed systems. It is particularly useful in mic...
Distributed maps provide a way for applications to store and access data in a distributed environment, where the data is automatically distributed ac...
Optional in Java is a container object that is used to represent the presence or absence of a value. It is a powerful tool that can help to avoid nul...
In Java, generics provide a way to specify a type parameter for a class, method, or interface. A type parameter is a placeholder for a type that is s...
The diamond operator in Java, also known as the empty angle bracket (<>) syntax, was introduced in Java 7 and provides several benefits: Imp...
In Java, a method reference is a shorthand notation for referring to a method as a lambda expression. Method references provide a way to pass a refer...
In Java, annotations are a form of metadata that provide additional information about program elements such as classes, methods, fields, and paramete...
Both Perl and Python are powerful scripting languages that are used extensively in software development, system administration, and data analysis. He...
Here's a Linux bash script that performs the following tasks: Prompts the user to enter a directory path. Checks if the directory exists and if ...
The Java 8 Stream API is the best choice when it comes to working with collections. Here's an example of how to use it to perform filtering, mapping,...
Custom exceptions should be used when you want to handle specific error scenarios in your application that are not covered by the built-in exception ...
Static variables and methods are shared among all instances of a class and can be accessed without creating an object of that class. While static var...
A common bad practice in Java programming is not properly handling exceptions. Java has a robust exception handling mechanism, but not using it prope...
Using if statements to solve Java problems is not necessarily a bad idea, as if statements are a fundamental part of the language and are used extens...
Lambda expressions were introduced in Java 8, and they provide several benefits over traditional anonymous inner classes. Some of the benefits of lam...
In Java, when you pass a parameter to a method, a copy of the value of that parameter is passed to the method, rather than the original object itself...
In Java, varargs (variable-length arguments) are a feature that allows a method to accept an arbitrary number of arguments of the same type. The vara...
In Java, access modifiers are keywords that determine the accessibility of classes, methods, and variables in an object-oriented program. There are f...
Securing a Linux system can be a complex task, and there are many potential pitfalls and mistakes that can compromise the system's security. Here ...
iptables and ipsets are both tools that are commonly used in Linux-based operating systems for managing network traffic. However, they serve differen...
To create a WordPress plugin which shows a random value from an array, such as quote or fact, follow these steps. Open your editor and create a fil...
Java is a cross-platform language, which means that Java applications can run on a variety of operating systems, including Linux and Windows. The per...
The performance of PHP and Java can depend on a variety of factors, including the specific implementation, the hardware and software environment, and...
There are several good security practices to follow when developing Java applications. Here are some of the most important ones: Keep your Java ru...
SP (JavaServer Pages) pages are essentially HTML files with embedded Java code. To rewrite JSP pages in Java, you will need to extract the Java code ...
Orcacle releases new Java versions quite often and the current one is 19. However, plenty of production code is still running on older Java versions ...
There are several quick wins that can be achieved through refactoring Java code: Removing duplicate code: Duplicate code can make the codebase har...
In one of our previous articles How to Mock Variables for Interfaces and Casts in Java we described how to use the method withSettings().extraInterfa...
Maven profiles are a way to define a set of configuration options for a Maven build. Profiles are used to specify different build configurations for ...
Retry logic can be implemented in Java using various libraries and frameworks, but the general idea is to have a block of code that can potentially f...
In Java, objects can be classified as either mutable or immutable based on whether their state can be changed or not. A mutable object is one whose...
In Java, both Boolean and AtomicBoolean are used to represent Boolean values, but they have different characteristics and use cases. Boolean is a w...
One common issue when writing JUnit tests is how to create a mock when the variable is an an interface / implementation or a casting. For example, ...
In case you have wondered how to back up a MySQL database using Java code, here is one way to do it: import java.io.File; import java.io.IOExceptio...
Console programs in Java can be easily written using System.out.println for output and Scanner for input. For example, here is a simple guessing ga...
Writing clean, easy-to-read code in Java is important for improving code readability, maintainability, and overall quality. Here are some tips for wr...
To some people obfuscating programming code, including Java, means: Job security. If no one can understand their code, they are irreplaceable. ...
If you still run your Java code with JVM 8, it's probably high time to move on and starting using a newer JVM version such as 11. For this reasons, y...
If for some reasons you have decided that you don't like Lombok any longer, you can follow these steps to remove it: Remove Lombok annotations fro...
In programming, boilerplate refers to sections of code that are repeated in many places throughout a project or across multiple projects. This code m...
Code analysis tools are software tools that analyze source code for potential issues, errors, and vulnerabilities. These tools can help developers id...
A common dilemma while writing unit tests in Java is whether to use Mockito's when/thenReturn or doReturn/when stubbings. Both when/thenReturn and ...
One of our latests posts was how to become a better programmer with the help of OpenGPT. Still, even without the help of AI, there are things you can...
Test driven development is the standard nowadays but sometimes somehow there appears a class before the test is written. This is especially true for ...
OpenGPT is very popular lately. If you haven't heard about it yet, it is a language model developed by OpenAI that can generate human-like text based...
One of the fastest ways to advance in Java programming is using SolarLint's IDE extension. It helps you avoid common problems and ensures your code i...
A common interview question for Java developers is to write some code inside a try / catch / finally statement so that the finally statement is not r...
A deadlock is a situation in computer programming where two or more processes are blocked, each waiting for the other to release a resource that they...
You might want to have more than one JDK on your Mac and run different programs with different JDK versions as it is with me. The easiest and safes...
Hazelcast is an open source in-memory data grid. It is written in Java and naturally it is popular for Java applications but not only. In simple w...
A Singleton class is a class of which only one instance exists. There is a need for such a design pattern for loggers, database connections and other...
Concurrency problems appear when your code is executed by more than one thread. Then, in contrast to a single-threaded execution, your code might beh...
Period, Duration and Instant are three different classes introduced since Java 8 to help us deal better with time. Period measures the time with ...
The Optional object type in Java was introduced with version 8 of Java. It is used when we want to express that a value might not be known (yet) or i...
Tengine seems to be a popular web server for Chinese websites. I've come upon it while browsing through Aliexpress and stumbling upon a 404 error: ...
Streams are a wonderful feature in Java allowing you to write clean, efficient and powerful code. If you haven't consumed the output of the stream,...
In order to use lambda expressions in Java 8, you need a functional interface. For most of your needs, you can use the already built ones in Java wh...
Generics in Java and especially such with upper and lower bounds can be confusing even though they are otherwise very useful. Here is an example wh...
The Telescoping anti-pattern is widely-spread, just like a virus. It starts with good intentions. For example, a class that has two properties like t...
Being able to create an immutable object in Java is one of the most essential skills for any Java programmer. Such objects are needed when you want t...
A functional interface is an interface that contains a single abstract method. It is used as the basis for lambda expressions in functional programm...
Another useful feature introduced since Java 8 is the possibility to use lambdas instead of anonymous classes. Here is an example: Imagine you have...
There is a relatively simple challenge to extend the vowels in a string. Here is a way to do it in Java 8: import java.util.function.Function; pub...
Java 8 introduced streams, among other things, and one of my favourite features is the reduce() method. It combines a stream into a single method. ...
A friend asked me to help him with the following in Bash - delete all files but a whitelisted and use mix / max depth for directory traversal. It's p...
I've had the following challenge yesterday. A friend of mine had an old Joomla 2.5 with a bunch of customization - additional components installed, c...
I am sure that there are plenty of honeypots for logging remote intruders but none yet has been done on Spring Boot. So I decided to write a simple o...
Mockito is a popular Java framework which comes to great help in Unit testing. In Unit testing it's important to get to a state where you can conc...
Connecting to Elasticsearch and executing queries is generally considered easy. In fact, in many cases a simple curl query like this one is all you ...
Using Maven to maintain and build your Java projects has a lot of advantages including automatically resolving dependencies, running tests and packag...
Chef (the systems integration framework) provides a standalone tool called chef-solo. With chef-solo you can run locally chef recipes without the need...
AppArmor is the default Mandatory Access Control module on Ubuntu, SuSE and other Linux distributions. Thanks to it, you can limit the filesystem acce...
A great security feature of Php FastCGI Process Manager (Php-fpm) is its ability to run Php scripts with different users. This in addition to its othe...
The best way to terminate a Java thread is with a switch such as a boolean property, .e.g abort. As soon as a condition is met, usually a timeout, you...
Referencing a child object to a variable of type parent in Java can be real confusing. Here is an example of two classes Person and Student and an ove...
Working with time and date in Java is essential to any project. There are three important classes you can use: java.time.LocalTime - working only wit...
To parse time in Java, the most trouble-free and programatic way is using the parse method of the LocalTime class like this: import java.time.LocalTim...
Notice: This article was written when SuPHP was the most popular choice for running multiple PHP sites on the same Apache server. Now, php-fpm with d...
The MongoDB database server is well-known for its unmatched capabilities for processing large NoSQL data. Its latest performance improvements are alwa...
To secure the communication and increase the level of privacy to and from your Tomcat servlet container you should use SSL. Usually there's an Apache ...
SSH tunneling is very useful when the network access to a remote network is restricted. Thus, to gain remote network access you can use a tunnel to a ...
Almost every piece of information contains sensitive and private data. Exposing publicly such data could lead to serious financial losses, legal issue...
You can install Azure Python package either for Python 2 or Python 3 using pip (Python package index). Before you are able to install it though you ha...
Changing Tomcat's initial (Xms) and maximum (Xmx) memory turns out to be counter-intuitive on Windows, especially when Tomcat is installed as a servic...
Working with root (admin privileged user) in CentOS is not a good idea because you can easily make a costly mistake. Instead, it's much better to gran...
This is an error which you may get when you don't have an internet connection and you try to use a Docker functionality which needs internet access. F...
Introduction Getting a site running on a MEAN (MongoDB, Node.js, Express, and AngularJS) server can be a challenge for beginners. In this article we'l...
Working with root (admin privileged user) in Ubuntu is not a good idea because you can easily make a costly mistake. Instead, it's much better to gran...