Author: Supriyo Biswas

Arrays in C Programming with Examples

Arrays in C allow you to store multiple items of the same data type, such as a list of integers. Arrays form the basis for many data structures and allow you to build advanced...

Recursive Descent Parser cover image

Building Recursive Descent Parsers: The Definitive Guide

Parsers are programs that help process text. Compilers and interpreters use parsers to analyze programs before processing them further, and parsers for formats like JSON and YAML process text into the programming language’s native...

ssh keys cover image

How to Set up SSH Keys on a Linux/Unix Server

SSH (Secure SHell) is a network protocol that allows you to securely execute commands on and transfer files to a remote server. Typically, most servers running SSH are configured to use password-based authentication; however,...

A Guide to the Linux “Find” Command

The find command allows users to search for files and take actions on them. It is part of the “findutils” package and comes bundled with all distributions.  It is highly flexible, allowing you to...

An Introduction to Linux File Permissions

Linux is a multi-user operating system, and it ensures the security of files with the concepts of “ownership” and “permissions”. You can use these concepts to control who can access and modify files. In...

A Guide to Monitoring Servers with Nagios

Monitoring is an essential part of managing infrastructure. It helps you to ensure that your business keeps running smoothly, by alerting you to problems as they occur. Nagios is a very popular open-source application...

Prometheus cover image

How to Install and Use Prometheus for Monitoring

  Monitoring is an important part of managing applications deployed on servers. They help you ensure applications run smoothly, as well as troubleshoot any problems that may arise. In this article, we will look...

How to Set up Basic HTTP Authentication on nginx

Files placed on a web server are publicly accessible by default. If you want to protect files from unauthorized access, you can make use of HTTP basic authentication. It is a simple authentication method,...

A Guide to the Linux “Top” Command

The top command allows users to monitor processes and system resource usage on Linux. It is one of the most useful tools in a sysadmin’s toolbox, and it comes pre-installed on every distribution. Unlike...

How to Configure nginx as a Load Balancer

For very small websites, a single server running a web application is usually enough. However, this doesn’t work well for larger websites. In such cases, we make use of “load balancing”, a technique that...

Creating Linux Apps That Run Anywhere with AppImage

Most Linux distributions allow users to install software by using a package manager. Unfortunately, this system leads to quite a few rough edges. If you’re a user using a “long term support” version of...

docker cover picture

An Introduction to the Docker Ecosystem

Traditionally, developing an application and deploying it in a production environment hasn’t been easy. Development and production environments are often configured differently, which makes it difficult to resolve problems quickly when something was broken. A...

An In-Depth Guide to iptables, the Linux Firewall

The Linux kernel comes with a packet filtering framework named netfilter. It allows you to allow, drop and modify traffic leaving in and out of a system. A tool, iptables builds upon this functionality...

caddy cover

A Guide to Using the Caddy Server on Linux

Caddy is a web server that’s extremely easy to configure and use. It provides HTTP/2 support, automatic SSL configuration with Let’s Encrypt, and an intuitive configuration syntax. It is cross-platform, and can run across...

A Guide to SSH Port Forwarding/Tunnelling

SSH is a widely used protocol for system administration and file transfer. In addition, it has a feature called SSH tunnelling  (or SSH port forwarding). It creates an encrypted connection between a local computer...