
How to Use Tailwind 4 with Angular 19
Tailwind CSS 4 brings modern utility-first styling capabilities to the table, making it a perfect choice for building fast, customizable, and scalable UIs. However, when integrating it with Angular 19, there are some nuances and workarounds you need to be aware of. This guide will walk you through the process step-by-step. 1. Prerequisites Before starting, ensure you have the following installed on your system: Node.js (version 18 or higher recommended) Angular CLI 19 2....
Install Postgres on MacOS with Homebrew along with pgAdmin4
PostgreSQL is a powerful, open-source relational database management system widely used for building scalable web applications. In this article, we’ll walk through the process of installing PostgreSQL on MacOS using Homebrew, a popular package manager for MacOS, and setting up pgAdmin4, a web-based administration tool for PostgreSQL. Prerequisites Before we begin, make sure you have Homebrew installed on your MacOS system. If not, you can install it by running the following command in your terminal:...

WebSockets: Build Anonymous Chat Server in Golang and Tailwind
WebSockets provide a full-duplex communication channel over a single TCP connection, enabling real-time communication between clients and servers. In this article, we’ll build an anonymous chat server in Golang using the net/http and golang.org/x/net/websocket packages, and we’ll style the chat interface using Tailwind CSS. Prerequisites Ensure you have Go installed on your system. You can download it from here. Also, make sure you have tailwindcss installed or you can link it via CDN....

IP Throttling or Rate Limiting in Golang using net/http and time/rate
IP throttling, also known as rate limiting, is a technique used to control the rate of requests from a client to a server. It helps prevent abuse, ensure fair usage of resources, and protect against denial-of-service attacks. In this article, we’ll explore how to implement IP throttling in Go using the net/http package and the golang.org/x/time/rate package, which provides a rate limiter implementation. Prerequisites Before we proceed, make sure you have Go installed on your system....

Trigger Jenkins job from Laravel via Guzzle Request
To trigger a Jenkins job from a Laravel application using Guzzle, you can use the Jenkins API endpoint to build a job. Follow these steps: Create Jenkins Token In Jenkins, click on your User Name from Top Right Navbar, inside that page go to “Configure”. There you will see section “API Token “. Click on “Add new token " and create token. Copy the generated token and save it for future use....

How to access Laravel Passport API from Shell Script using CURL and JQ
TL;DR: Access Laravel Passport API’s from Shell Script using CURL and JQ. This combination can be helpful in running remote Automation Jobs and Builds. Laravel Passport is a full OAuth2 server implementation for Laravel. It provides a simple and convenient way to authenticate users and secure API endpoints. In this article, we’ll walk through the process of logging in to a Laravel Passport API using a shell script. We’ll use curl to make HTTP requests and jq to parse JSON responses....

Next Best Web Framework: Benchmark Comparison for Golang Fiber, Node.js Express, Laravel, Lumen, and Django
TL;DR: Web Framework Recommendation for Performance and Ease of coding in 2023. Golang and Express excel in high-performance scenarios, while Laravel, Lumen, and Django prioritise developer experience and feature completeness Choosing the right web framework for your project is a critical decision that can significantly impact the success of your project. Developers have a plethora of options available, each with its own set of advantages and trade-offs. In this benchmark comparison, we’ll evaluate five popular web frameworks: Golang Fiber, Node....

Error Handling Strategies in Go: Panic, Recover, and Error Wrapping
Error handling is an essential aspect of robust software development. In Go, error handling is straightforward yet powerful, thanks to the built-in panic and recover mechanisms, along with the ability to wrap errors for improved context. In this article, we’ll explore these error handling strategies in detail, along with comprehensive code examples. 1. Panic and Recover What is Panic? panic is a built-in function in Go that stops the ordinary flow of control and begins panicking....

Enable GZIP Compression on Ubuntu + Apache
Enable GZIP Compression on Ubuntu + Apache GZIP compression is a technique used to reduce the size of files transmitted over the internet, which can significantly improve website performance and decrease load times. In this article, we will guide you through the steps to enable GZIP compression on an Ubuntu server with Apache. Step 1: Check if mod_deflate is installed Before proceeding, we need to check if the mod_deflate module is installed and enabled in Apache....

Install NVM / Node for all users including Jenkins
Node Version Manager (NVM) is normally installed for a single user, typically under ~/.nvm. This works well for development environments, but it can become problematic on servers where multiple users or services need Node.js. For example, on an Ubuntu server you may need Node.js for: Jenkins CI/CD jobs Supervisor-managed applications www-data Deployment scripts Regular SSH users A better approach for this scenario is to install NVM in a shared system location such as /opt/nvm....

Interfaces in Golang: A Comprehensive Guide
In Go, interfaces play a significant role in achieving polymorphism and abstraction. They define a set of method signatures that a type must implement to satisfy the interface contract. In this article, we’ll delve into what interfaces are, why they are useful, explore the concept of empty interfaces, and discuss some common useful interfaces in Go, accompanied by comprehensive code examples. What is an Interface in Go? An interface in Go is a type that specifies a set of method signatures....

How to Run a Root-Level Shell Script in Jenkins
Jenkins normally runs shell commands as the jenkins user. However, some server-maintenance tasks require root privileges—for example, cleaning APT caches, removing old packages, or managing system files. A common but unsafe approach is to give the Jenkins user unrestricted sudo access: jenkins ALL=(ALL) NOPASSWD: ALL This allows Jenkins jobs to execute arbitrary commands as root. A much safer approach is to allow Jenkins to run only one specific maintenance script as root....

Setup Jenkins on Ubuntu 20.04 / 22.04 and run Jobs are root user
Requirements Add the repository key to the system and append the Debian package repository. wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt update Install Java 17 sudo apt install openjdk-17-jre-headless Update JAVA_HOME in .bashrc : nano ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 Install Jenkins sudo apt install jenkins Allow firewall for 8080 port...

Enable Bootstrap Tooltip in Angular using Attribute Directive
Bootstrap is a popular CSS framework that provides a set of ready-to-use components and styles for building responsive web applications. In this article, we will explore how to enable Bootstrap Tooltip in an Angular application using an attribute directive. Install Bootstrap: npm install bootstrap Import Bootstrap SCSS in styles.scss: // For Setting Project Specific Bootstrap Variable. Like $primary Color @import "assets/scss/variables.scss"; // Import Bootstrap @import "../node_modules/bootstrap/scss/bootstrap.scss"; // App Specific components @import "assets/scss/app....

Concurrency in Golang: Goroutines and Channels Explained
Concurrency is a powerful aspect of Go (Golang) that allows developers to execute multiple tasks concurrently, enabling efficient resource utilization and improved performance. In this article, we’ll explore two key concurrency primitives in Go: goroutines and channels. Understanding Goroutines Goroutines are lightweight threads managed by the Go runtime. They enable concurrent execution of functions or methods independently of other parts of the program. Goroutines are more lightweight than operating system threads, allowing Go programs to create thousands or even millions of them without significant overhead....

How to speed up Laravel Unit tests using Schema:Dump
Laravel, an open-source PHP framework, provides built-in functionalities for developers to write tests for their applications. However, running tests, especially database tests, can sometimes be slow and time-consuming, affecting the productivity of developers. This blog post will elaborate on how to speed up Laravel unit tests using the schema::dump command. The Problem While performing unit tests in Laravel, developers often face a problem: migrations. Each time you run a test, Laravel runs all migrations, creating a database schema....

Singleton Pattern Approaches in Golang
The Singleton pattern is a creational design pattern that ensures a class has only one instance and provides a global point of access to that instance. While Go does not have traditional classes like object-oriented languages, it does allow for the implementation of the Singleton pattern using various approaches. We are going to use Goroutines in testing our approaches in Multi-threading. In this article, we’ll explore different approaches to implement the Singleton pattern in Go, along with code examples....

Golang: Hello World
Simple Hello World Program in Golang for beginners ...

PHP-FPM Get list of running php files
We always find need to know which php files (Malware or otherwise) consuming the CPU and Server resources, so that you can fix those files. FPM status page give this exact information. For that it needs to be enabled and configured in your apache confirguration where you want it to be displayed. Find where your FPM configuration is and edit www.conf. nano /etc/php/7.4/fpm/pool.d/www.conf Update file for: pm.status_path = /fpm7.4-status Restart FPM sudo service php7....

Manage Laravel Queues using Supervisor
Every Laravel Queue has it’s own cached version of Laravel Models, Jobs & Notification. You will be in serious panic if you are working on Jobs & Notification as Queue will not update the version of those file dynamically. You will need to restart Queue every time, by finding it in processes and killing it. Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems....