How To Set Up GitHub Continuous Integration Pipelines With Self-Hosted Runners on Ubuntu 22.04.

Introduction Software Engineering is a fast-paced and competitive field. Rolling out your products to users faster will give you an edge over your competitors. On the bright side, industry best practices are in place to help companies have a level playing field. Continuous Integration and Continuous Development(CICD) is an example of a strategy that leverages industry best practices to give …

Managing CSV in Node.js using Node-CSV

A CSV file is a plain text file that stores data in tabular format. In most cases, CSV files use commas (,) as the delimiter, hence the name CSV (Comma Separated Values). It’s used in situations where data compatibility is a concern as CSVs can be opened with any text editor, spreadsheet apps, and other specialized tools. In fact, many …

Containerize A Python App using Docker

Docker is a free and open-source solution for developing, deploying, and managing apps in lightweight, OS-level virtualization. In this guide, we will demonstrate creating a Python app within a Docker container. Prerequisites To perform the steps demonstrated in this guide, you will need the following components: A Linux system. Check out configuring your own Ubuntu VPS on CloudSigma. The latest …

GitLab for Managing Projects featured image

Using GitLab for Managing Projects

Introduction GitLab offers a very convenient way to work with remote repositories on centralized servers. Anyone coming from GitHub or any other tool might consider that there are many other tools offering this service. However, use cases differ from team to team. GitLab’s main advantage is that you get complete control over your repositories and setting permissions. In this tutorial, …

Creating Drag and Drop Elements with Pure, Vanilla JavaScript featured image

Creating Drag and Drop Elements with Pure, Vanilla JavaScript

JavaScript is one of the most popular programming languages empowered with more than 24 frameworks and around 84 libraries. It is the only programming language intrinsically supported by all browsers. Besides, the language supports dynamic typing and is an excellent fit for rendering and animation. You can leverage JavaScript to add interactive behavior in the front-end, control the backend, create …

Using Query Parameters with Angular Router

Using Query Parameters with Angular Router

Introduction When building applications, there might be scenarios where we want to pass in some arguments or parameters to describe the behavior of the route. In Angular, these are called query parameters, and they are optional. Query parameters should not be confused with regular route parameters that are required parameters and bound to one route only. To clear the difference …

Building a Django and Gunicorn Application with Docker on Ubuntu featured image

Building a Django and Gunicorn Application with Docker on Ubuntu

Django is a high-level open-source Python web framework that can help you build your Python application quickly. It encourages rapid development and clean, pragmatic design by following the model–template–views architectural pattern. Out of the box, the framework comes with the necessary modern application components such as user authentication, caching framework, object-relational mapper, URL Dispatcher, template system, and customizable administrative interface. …

HTTP Authentication featured image

Configuring Basic HTTP Authentication with Nginx on Ubuntu 20.04

Nginx is a free, open-source web server used for load balancing, buffering, and caching. Since its inception in 2004, Nginx has gained popularity for scaling web servers and reverse proxying. Due to its high performance and excellent capabilities to handle a large volume of connections, it is used to manage and control incoming traffic. How Does HTTP Authentication Work? In …

Making Decisions Using Switch Statement in Javascript featured image

Making Decisions Using Switch Statement in Javascript

Introduction Conditional statements are one of the most important control flows in any programming language. We use them to dictate the behavior of execution upon some condition. In Javascript, conditional blocks can be built using if, else if, else, and switch statements. The switch statement makes the control flow easy to read by making the decision against some possible outcomes to …

Automating Server Setup using Ansible and Ubuntu 20.04 featured image

Automating Server Setup using Ansible and Ubuntu 20.04

Introduction Nowadays, servers need to be created and destroyed very frequently. That’s because, at times, servers get a lot of execution load while at other times the load reduces, hence wasting the system resources. A common example is eCommerce websites during the holiday seasons attracting a lot of traffic. When the nature of the application is to be scalable, there …

Pagination featured image

Applying Pagination to Display Multiple Records using MySQL with PHP on Ubuntu 20.04

Introduction Pagination is an important concept in building data-driven applications. When pulling out the records from the database, a large number of records may be fetched. For instance, when running the query for active users or users belonging to some specific location, a large number of users in hundreds or even thousands can be returned. Displaying this huge number of …

PHP Rate Limiting Using Redis featured image

Implementing PHP Rate Limiting Using Redis on Ubuntu 20.04: A Tutorial

Redis, also called Remote Dictionary Server, is an open-sourced in-memory database. It is a data-structured storage system that runs on a server’s RAM, which is much quicker than the fastest Solid State Drive (SSD). As a result, Redis is very responsive and an excellent fit for rate limiting. Rate limiting restricts the number of times a user may request a …