Developer Reference

Tips, Tricks, Tutorials, How-Tos, Docs, And Ideas for Developers.

Apr 8, 2026

NFS, The Network File System

The Network File System (NFS) is a protocol that allows you to set up storage locations on your network. When you have NFS set up, your users can treat a remote hard drive as if it were attached to their computer, just...

Mar 9, 2026

JSON and jq Tutorial

As the web grows in popularity and power, so does the amount of data stored and transferred between systems, many of which know nothing about each other. From early on, the format that this data was transferred in mattered, and like the...

Mar 5, 2026

Installing Windows on an Intel-based Mac

Installing Windows on an Intel-based Mac is primarily done using the built-in Boot Camp Assistant, which allows you to dual-boot between macOS and Windows. This process requires a Windows 10/11 ISO file, at least 64GB of free disk space (100GB+ recommended), and...

Mar 4, 2026

Setup Fail2Ban with systemd and nftables

Fail2Ban scans log files like /var/log/auth.log and bans IP addresses conducting too many failed login attempts. It does this by updating system firewall rules to reject new connections from those IP addresses, for a configurable amount of time. Fail2Ban comes out-of-the-box ready...

Mar 3, 2026

NGINX, Selectively Disabling HTTP Versions

In January 2026, I decided to enable the HTTP/3 protocol for NGINX. After a few config tweaks to nginx and modifications to firewall to allow UDP traffic, I was up and running. While reviewing the access and error logs to ensure things...

Jan 21, 2026

nftables, Get Started with nftables

If you’re still using iptables in 2026, you’re missing out on the power and elegance of nftables. nftables replaces the successful iptables and its related frameworks built on Netfilter. With nftables come improvements to performance and usability, but also significant changes to...

Jan 8, 2026

nftables/iproute2 vs iptables/net-tools

Many sysadmins still manage and troubleshoot various network configurations by using a combination of ifconfig, route, arp and netstat command-line tools, collectively known as net-tools. Originally rooted in the BSD TCP/IP toolkit, the net-tools was developed to configure network functionality of older...

Jan 6, 2026

NGINX Cross-Domain Issues

When you encounter a cross-domain problem, don’t immediately choose to copy it and try it. In this tutorial, we look at ways to control origin limitations in NGINX. First, we briefly refresh our knowledge about the concept of origins in the Web...

Jan 4, 2026

NGINX Tips, Tricks, And Ideas

Effective NGINX practices involve hardening security (hiding version, strong TLS, HSTS), optimizing performance (caching, keepalive, disabling logs), using it as a reverse proxy for microservices, and implementing rate limiting to block bots and protect sensitive areas like login pages, all while maintaining...

Dec 30, 2025

NGINX Practice of Nginx Reverse Proxy

To ensure optimal performance, security, and reliability when using Nginx as a reverse proxy to upstream servers, follow these best practices and tips. Enable Keepalive Connections, Use HTTP/1.1 for Upstream, Implement Caching, Define Upstream Groups, Load Balancing Method, etc. Pay attention to...

Dec 18, 2025

NGINX Autoindex with WebDAV Module

If you require a full-featured and highly compatible WebDAV server, Apache httpd Autoindex is generally the preferred choice due to its robust and complete implementation. Nginx’s built-in module is intended for simple file management automation and lacks advanced features like file locking....

Dec 4, 2025

NGINX Optimize Performance

Improving Nginx performance involves optimizing its configuration and leveraging its features to efficiently handle requests and deliver content. For most use cases, default NGINX and Linux settings work well, but achieving optimal performance sometimes requires a bit of tuning. NGINX is incredibly...

Nov 28, 2025

The NGINX HTTP Server

Nginx is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, Nginx can also function as...

Nov 21, 2025

MinIO Using Encrypted Connections

Warning! SSL is Deprecated in MinIO project. TLS is the successor to Secure Socket Layer (SSL) encryption. SSL is fully deprecated as of June 30th, 2018. MinIO supports Transport Layer Security (TLS) 1.2+ encryption of incoming and outgoing traffic. MinIO can automatically...

Nov 12, 2025

MinIO Install MinIO on Linux

MinIO is a high-performance, S3-compatible object storage solution released under the GNU AGPL v3.0 license. Designed for speed and scalability, it powers AI/ML, analytics, and data-intensive workloads with industry-leading performance. As of October 2025, MinIO shifted its community edition to a "source-only"...

Nov 7, 2025

Redis Persistence use RDB or AOF

How Redis writes data to disk? Redis persistence refers to the writing of data to durable storage, such as a solid-state disk (SSD). Redis provides a range of persistence options. These include: RDB (Redis Database), RDB persistence performs point-in-time snapshots of your...

Nov 3, 2025

Redis Horizontal Scaling with Cluster

Horizontal scaling with Redis Cluster. Redis scales horizontally with a deployment topology called Redis Cluster. This topic will teach you how to set up, test, and operate Redis Cluster in production. You will learn about the availability and consistency characteristics of Redis...

Oct 31, 2025

Redis High Availability with Replication

How Redis supports high availability and failover with replication? At the base of Redis replication (excluding the high availability features provided as an additional layer by Redis Cluster or Redis Sentinel) there is a leader follower (master-replica) replication that is simple to...

Oct 24, 2025

Redis High Availability with Sentinel

Redis Sentinel is a free and open-source solution for high availability and scalability with non-clustered Redis. Redis Sentinel provides high availability for Redis when not using Redis Cluster. Redis Sentinel also provides other collateral tasks such as monitoring, notifications and acts as...

Oct 17, 2025

Redis Using Encrypted Connections

Redis has optional support for TLS on all communication channels, including client connections, replication links, and the Redis Cluster bus protocol. Enabling SSL/TLS support in Redis involves configuring the Redis server to use TLS for secure communication. Then requires generating and providing...

Oct 9, 2025

Redis Improve Performance

Improving Redis performance involves a combination of configuration, architectural, and application-level optimizations. In any database setup, performance is always a challenge and is most of the time database administrators and developers always deals with especially for a production and large environment. It’s...

Oct 8, 2025

Redis Authenticate Clients Using ACL

Redis provides two ways to authenticate clients. The recommended authentication method, introduced in Redis 6, is via Access Control Lists, allowing named users to be created and assigned fine-grained permissions. The legacy authentication method is enabled by editing the redis.conf file, and...

Sep 11, 2025

Debian, Upgrade to the Latest Version

Debian 13 Trixie was released on August 9, 2025. The release of Debian 13.0 marked the initial stable version of the Trixie release, with a subsequent update, 13.1, released on September 6, 2025. This page provides a step-by-step guide to updating Debian...

Sep 3, 2025

Redis Install Redis on Linux

Redis (which means REmote DIctionary Server) is an open-source, well known and advanced in-memory data structure store, used as a database, cache and message broker. You can consider it as a store and a cache: it has a design where data is...

Sep 1, 2025

MySQL Upgrading or Downgrading

Upgrading MySQL is a common procedure, as you pick up bug fixes within the same MySQL release series or significant features between major MySQL releases. You perform this procedure first on some test systems to make sure everything works smoothly, and then...

Sep 1, 2025

MySQL HA Solutions for MySQL

MySQL InnoDB Cluster is a free and open-source solution for high availability and scalability, available under the GNU General Public License (GPL) as part of the MySQL Community Edition. This includes the necessary components like MySQL Server, MySQL Shell, and MySQL Router....

Aug 31, 2025

About Good System Design

I see a lot of bad system design advice. One classic is the LinkedIn-optimized “bet you never heard of queues” style of post, presumably aimed at people who are new to the industry. Another is the Twitter-optimized “you’re a terrible engineer if...

Aug 30, 2025

MySQL Clone Plugin

The MySQL clone plugin permits cloning data locally or from a remote MySQL server instance. Cloned data is a physical snapshot of data stored in InnoDB that includes schemas, tables, tablespaces, and data dictionary metadata. The cloned data comprises a fully functional...

Aug 19, 2025

MySQL Replication

MySQL 8.4 supports different methods of replication. The traditional method is based on replicating events from the source’s binary log, and requires the log files and positions in them to be synchronized between source and replica. The newer method based on global...

Aug 13, 2025

MySQL Backup and Recovery

MySQL backup and recovery are crucial processes for data protection and business continuity. It is important to back up your databases so that you can recover your data and be up and running again in case problems occur, such as system crashes,...

Aug 7, 2025

MySQL Using Encrypted Connections

MySQL supports encrypted connections using the Transport Layer Security (TLS) protocol, which is sometimes referred to as SSL. This ensures secure data transmission between MySQL clients and servers, preventing unauthorized access or tampering. Several configuration parameters are available to indicate whether to...

Aug 1, 2025

MySQL Optimize Performance

Optimization of MySQL involves configuring, tuning, and measuring performance, at several levels. Depending on your job role (developer, DBA, or a combination of both), you might optimize at the level of individual SQL statements, entire applications, a single database server, or multiple...

Jun 27, 2025

MySQL Install MySQL on Linux

Linux supports a number of different solutions for installing MySQL. And Oracle also provides a set of binary distributions of MySQL too. Oracle recommend that you use one of the distributions from Oracle, for which several methods for installation are available at...

Jun 26, 2025

PKG MGR, Lock Package Updates on Linux

A package manager is software that allows a user to install new software, upgrade the system, or update specific software, among other tasks. On Linux-based systems, where software often has many dependencies that must be present on the system for complete installation,...

Jun 6, 2025

Understanding the Git Workflow

If you don’t understand the motivation behind Git’s design, you’re in for a world of hurt. With enough flags you can force Git to act the way you think it should instead of the way it wants to. But that’s like using...

Jun 5, 2025

Git Branching Strategies

This model was conceived in 2010, now more than 10 years ago, and not very long after Git itself came into being. In those 10 years, git-flow (the branching model laid out in this article) has become hugely popular in many a...

Feb 19, 2025

Introduction to IP Version 6

IPv4 was introduced in the late 1970s and was first officially described in RFC 760 in January 1980, later replaced by RFC 791 in September 1981. In those early years for computer networks, there were less than a few thousand hosts on...

Feb 18, 2025

IPv6 Address Types Cheat Sheet

IPv6 provides enough addresses to allow the Internet to continue to expand and the industry to innovate. It is not, however, directly compatible with IPv4, meaning that a device connected via IPv4 cannot communicate directly with a device connected using IPv6. IPv6...

Feb 17, 2025

Linux Old CMDs and Their Replacements

In this article, we will share deprecated Linux commands and their replacements. These commands include ifconfig, netstat, arp, nameif, and more. Importantly, you should keep in mind that unmaintained software is dangerous, it poses a great security risk to your Linux system....

Feb 13, 2025

UDP Hole Punching, UDP Obfuscator

The Phantun is a project that obfuscated UDP packets into TCP connections. It aims to achieve maximum performance with minimum processing and encapsulation overhead. It is commonly used in environments where UDP is blocked (throttled) but TCP is allowed through. The Phantun...

Feb 5, 2025

UDP Hole Punching, UDP Reverse Tunnel

The UDP Reverse Tunnel project by the author of TorChat does the job. The udp-reverse-tunnel create an UDP-over-UDP reverse tunnel to make a VPN server behind (CG-)NAT accessible from the outside. Note that there is no encryption. Packets are forwarded as they...

Jan 10, 2025

Essential CMD, diff

The diff is a command-line utility that allows you to compare two files line by line. It can also compare the contents of directories. The diff is most commonly used to create a patch containing the differences between one or more files...

Jan 9, 2025

Text Processing, CUT and TR

Like peanut butter and chocolate, cut and tr are two great commands that go great together. The cut provides an easy way to grab one or more fields from a line of text, and tr allows you to prepare the line first....

Jan 6, 2025

Text Processing, Abstract

Text processing in Linux refers to manipulating, analyzing, and managing textual data using various command-line tools and utilities available in the Linux operating system. It involves performing a wide range of tasks on text data, such as searching, filtering, sorting, formatting, and...

Jan 2, 2025

macOS, Useful Built-in Commands

Sometimes when I’m bored, I like to look at the list of macOS Bash commands. macOS comes with a lot of built-in utilities. Here’s a list of some that I find interesting. macOS is a Unix OS and its command line is...

Jan 1, 2025

Linux, Configure Network Interfaces

There are multiple ways to configure the network in modern Linux systems. The most popular are using Network Manager and Systemd. However, sometimes we need to do it manually using the /etc/network/interfaces configuration file. In this tutorial, we’ll see how to configure...

Dec 19, 2024

ISO CMD, Create ISO Image and USB Disk

An ISO file is a bit-by-bit copy of the contents of a CD, DVD, or Blu-ray disc. These files are commonly used for archival and distribution purposes, and we can burn them to optical discs or mount them in read-only mode. In...

Dec 13, 2024

Java, Unpackage and Repackage WAR File

The WAR (Web ARchive) files are a type of archive file used to package web applications into a single file. They are similar to the Java ARchive (JAR) files and are typically used to deploy web applications in a Java environment. In...

Nov 7, 2024

Systemd, Use Journalctl to Manipulate Logs

Systemd is a cutting-edge system and service manager for Linux systems: an init daemon replacement intended to start processes in parallel at system boot. It is now supported in a number of current mainstream distribution including Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL,...

Aug 8, 2024

GFW, Intro to Virtual Private Networks

A virtual private network is a service that provides you with a secure and private internet connection wherever you are in the world. A VPN creates an encrypted tunnel to keep your data safe, hides your IP address to facilitate anonymous browsing...

Aug 3, 2024

iptables, Hole Punching for IPSec

In this example we are going to make a remote strongSwan Server (UDP Port 500 and 4500) available on our local computer on the same ports. Network Address Translation (NAT) is a method used to remap one IP address space into another...

Aug 2, 2024

iptables, Linux Port Forwarding

Port forwarding also called “port mapping” commonly refers to the network address translator gateway changing the destination address and/or port of the packet to reach a host within a masqueraded, typically private, network. In the Linux kernel, port forwarding is achieved by...

Aug 1, 2024

iptables, Set Up Network Gateway

Sharing the networking is important and setting up a gateway is a good solution to it. Building up the gateway on a Linux box is easy, cost efficient and reliable. With a Linux box, you can share the internet connection or the...

Jul 31, 2024

iptables, How to Make iptables Persistent

Experienced Linux administrators likely know the frustration and pain that comes with a system reboot completely wiping a system’s iptables rules. That is because iptables rules, by default, will not persist after a reboot. After configuring your system’s iptables rules, there is...

Jul 26, 2024

Systemd, Run Java jar with Systemd

Any Java application from the system point-of-view is just an instance of the Java Virtual Machine. In this short tutorial, we’ll see how we can make our applications run as system services. We’ll use the facilities of the systemd software package. systemd...

Jul 1, 2024

How to Run Windows 98 on VirtualBox

Windows 98 has been running pretty well in VirtualBox, but with the latest motherboard and VirtualBox updates, it has not been possible. Decided to give Windows 98 and VirtualBox a new tryout and ended up with a Windows 98 version much better...

Jun 21, 2024

Monitor CMD, top Command

The top command is a Linux utility that is used to display real-time information about running processes on a system. It provides a summary of the current state of the system, including the CPU, memory, and swap usage, as well as a...

Jun 19, 2024

Monitor CMD, iostat, sar, iotop, vmstat

In this tutorial, we’ll discuss how to monitor system activity in the Linux. It’s an important task to perform while maintaining a system. We need to see if there’s a bottleneck and what causes it, as well as identify which process is...

May 8, 2024

Systemd, Replace cron Jobs with Timers

The origins of cron date all the way back to 1975, in Version 7 Unix. Its dependability soon made it a favorite tool for scheduling tasks to run at specified dates and times. Admittedly, its syntax is pretty quirky. If you don’t...

Apr 17, 2024

SSH, Upgrade SSH Server on Linux

OpenSSH is a free and open source, full implementation of the SSH protocol 2.0, which provides a number of tools for securely accessing and managing remote computer systems. Recently OpenSSH 9.7 was released and ships with many new features and bug fixes....

Apr 9, 2024

Practices, Tips, and Tricks for Shell Scripts

Shell scripting is the easiest form of programming you can learn/do in Linux. More so, it is a required skill for system administration for automating tasks, developing new simple utilities/tools just to mention but a few. In this article, I will share...

Apr 9, 2024

String Manipulation in BASH

Bash supports a surprising number of string manipulation operations. Unfortunately, these tools lack a unified focus. Some are a subset of parameter substitution, and others fall under the functionality of the UNIX expr command. This results in inconsistent command syntax and overlap...

Apr 8, 2024

SSLH, Run SSH and HTTPS on the Same Port

The “sslh” accepts connections on specified ports, and forwards them further based on tests performed on the first data packet sent by the remote client. Probes for http, tls/ssl (including SNI and ALPN), ssh, openvpn, tinc, xmpp, socks5, are implemented, and any...

Apr 8, 2024

Special Characters in Bash, CMD, and PowerShell

Scripting languages have long been the linchpin of system administration, and amongst them, the Bourne-Again SHell (Bash) is one of the most renowned and widely used. Bash, an integral part of Unix and Linux systems, offers a robust environment for administrators and...

Apr 7, 2024

Squid, How to Setup Squid Proxy Server

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on...

Apr 7, 2024

GFW, Configuring Proxy for All Apps

Some environments restrict access to the Internet by requiring traffic to pass through an HTTP, HTTPS or SOCKS 4/5 proxy server. You can use the Command Line Interface (CLI) to provide the proxy settings to all apps, including system apps and service....

Apr 3, 2024

RHEL7, Upgrade Bash to the Latest

RedHat (and thus CentOS) doesn’t have the latest version of every software, it has a consistent version. For CentOS 7 the current version is bash-4.2.46-33.el7. RedHat will backport security fixes but may not backport functionality enhancements because they can cause compatibility issues....

Jan 6, 2024

Migrating to Java 21 from Java 8/11

The Java 8 brought some groundbreaking changes including Lambdas, Functional Interfaces, Stream API and other useful features. While Java 11 offered some less noticeable performance improvements, the two versions both offer long term support (LTS). The vast majority of dev shops are...

Jan 1, 2024

Java, JVM Tuning

When it comes to Java applications, to make sure they run at peak performance, it’s critical to close the resource gap between the code and the virtual machine it’s running on – if there is one. The way to do that is...

Dec 13, 2023

OS, Development Environment, Upgrading

On Linux, Development tools are required to install on your system if you have planned to build software. Over time, the GCC team releases new versions with enhanced features, optimizations, and bug fixes. Upgrading to the latest GCC version can provide performance...

Dec 12, 2023

OpenSSL, Upgrade OpenSSL to the Latest

Notes: OpenSSL 3.0 has been released, and with it there are some notable changes to the popular library used almost everywhere for implementing SSL/TLS. As of now, the OpenSSL 1.1.1 branch is still under active development, so while it’s worth evaluating the...

Dec 12, 2023

Linux, Upgrade Kernel on RHEL/Debian

By default, CentOS ships with a custom-built kernel to ensure its integrity and compatibility with supported hardware. The latest release of Kernel can be installed on CentOS 7 by building it or using an RPM repository with pre-built packages. In this guide,...

Dec 12, 2023

OS, Development Environment

A development environment is the collection of processes and tools that are used to develop the source code for a program or software product. This involves the entire environment that supports the process end to end, including development, staging and production servers....

Dec 11, 2023

Windows, Things To Do After Installing OS

Windows is pretty easy to get started with, but for the best experience, there are some important things to do after installing Windows. Doing these takes a bit of time, but sets you up for a smoother time down the road. If...

Dec 11, 2023

macOS, Things To Do After Installing OS

If you’re using an Apple device for the first time, you’ll need to set up an Apple ID. Think of this as your key to Apple’s ecosystem - it essentially allows you to do everything from logging in to iCloud to making...

Dec 10, 2023

Linux, Things To Do After Installing OS

Here is a list of tweaks and things to do after installing Linux, to get a smoother and better Linux experience. This guide explains things that you should do after installing Linux. This focuses on the Debian but should work for those...

Dec 9, 2023

Linux, The Sysctl.conf and Limits.conf

Linux gives full control over the system. The limits.conf file is a configuration that is used to limit the resources to the user, groups. Now let’s understand the file structure of limits.conf and how can we use the limits.conf to limit resources...

Nov 1, 2023

RHEL, How to Get Red Hat for Free

You can use Red Hat Linux for free. However, it requires a different process that what you are accustomed with SUSE or Debian. In January 2021, Red Hat announced a new free of cost subscription that was aimed at individuals wanting to...

Oct 11, 2023

Shell, Execute Script Directly From a URL

Various installation guides in Linux involve running a shell script first, which we download and then execute separately using Bash. Not only installation guides but also custom shell scripts written for automating manual activities involve downloading and executing some scripts. In this...

Oct 10, 2023

Pwsh, Add a Static Route in PowerShell

This article explained how to add a static route and other vital parameters to a routing table using PowerShell. If you want to see the contents of your entries, use the Get-NetRoute command to view the routing table, and you’ll see all...

Oct 8, 2023

Detect Operating System Types in Bash

Linux is a free and open source operating system. There are many variants of Linux out there. They are typically called Linux distribution. Suse, OpenSUSE, Debian, Ubuntu, CentOS, Arch, Fedora, RHEL all are common Linux distribution names. Knowing your os version and...

Sep 13, 2023

How to monitor IBM MQ

Updated on June 23, 2022: IBM MQ, previously IBM WebSphere MQ and the IBM MQ Series, is an enterprise-oriented messaging middleware. According to the IBM website, “It works with a broad range of computing platforms, applications, web services and communications protocols for...

Sep 12, 2023

How to Cleaning up IBM MQ Files

Which IBM MQ files should I clean up to maintain my system? IBM MQ queue managers automatically maintain the files which belong to the queue manager. IBM MQ also creates files to help diagnose unexpected conditions when it detects them, and these...

Sep 11, 2023

How to Define an MQ Listener and Port

How to define an MQ Listener and how to change the port number? What if you have an MQ queue manager named QMGR1 and there is no Listener associated yet with that queue manager. You want to create a Listener that uses...

Sep 10, 2023

IBM MQ HA with RDQM, DRBD, Pacemaker

RDQM architecture page described the basic architecture of Replicated Data Queue Manager High Availability and Disaster Recovery (RDQM HA and RDQM DR) configurations to assist with troubleshooting. DRBD9 User’s Guide described that DRBD (Distributed Replicated Storage System) is a software-based, shared-nothing, replicated...

Sep 9, 2023

Pacemaker Overview

Pacemaker is a high-availability cluster resource manager. It achieves maximum availability for your cluster services (a.k.a. resources) by detecting and recovering from node and resource-level failures by making use of the messaging and membership capabilities provided by Corosync. It can do this...

Sep 8, 2023

How to Run IBM Info Center Locally

You can install the IBM MQ Information Center to your local machine for personal use, or you can install it on an internal server and access it from the network with an internal URL. Installing it on your personal machine allows you...

Aug 1, 2023

Introduction to Artificial Intelligence (AI)

Artificial Intelligence (AI) is a field that has a long history but is still constantly and actively growing and changing. In the era of digital transformation, Artificial Intelligence (AI) has emerged as a groundbreaking technology that’s reshaping the way we work, communicate,...

May 1, 2023

Programming Tips Images

With every new subject, the sooner you start playing with the code, the faster you will learn the given concepts. Even if you blaze through an entire chapter of reading and a topic like for loops seems straightforward - so a monkey...

Mar 1, 2023

The History of Microservices

Are you a software engineer, developer, coder or maybe even a tech enthusiast who has been hearing of terms like Microservices and Docker but still clueless as to why there is so much hype around it? if yes, this is a must-read...

Feb 2, 2023

Github Pages and Jekyll Tutorial

Github Pages is a static web hosting service offered by Github since 2008 to Github users for hosting user blogs, project documentation, or even whole books created as a page. All Github Pages content is stored in a Git repository, either as...

Feb 1, 2023

The Vim

Vim (a contraction of Vi IMproved) is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy’s vi. Vim’s author, Bram Moolenaar (1961 - 3 August 2023), derived Vim from a port of the Stevie editor...

Mar 6, 2022

Linux, Package Repository Mirrors

A repository mirror is an up-to-date archive of all files, packages that make up a particular open source operating system. These mirrors are used for patching, updating, installing the particular operating system from a location (mirror) closer to your internet connection location....

Mar 5, 2022

Debian, APT Package Manager

Advanced Package Tool (APT), the main command-line package manager for Debian and its derivatives. It provides command-line tools for searching, managing and querying information about packages, as well as low-level access to all features provided by the libapt-pkg and libapt-inst libraries which...

Mar 3, 2022

macOS, Homebrew Package Manager

In simpler words, a package manager is a tool that allows users to install, remove, upgrade, configure and manage software packages on an operating system. The package manager can be a graphical application like a software center or a command line tool...

Mar 1, 2022

Windows, Scoop Package Manager

Scoop is a command-line installer for Windows. This software can manage installation and uninstallation of applications easily without polluting the environment, and the structure of management is simple. The package handled is less than Chocolatey, but it is especially focused on the...

Feb 1, 2022

macOS, Upgrade Bash to the Latest

Starting with macOS Catalina, Apple has dropped support for bash, which is widely used in Linux systems, due to licensing issues. Newer versions of Bash (version 4.0) are licensed with GPL v3.0 which is more restrictive, basically it doesn’t allow to be...

Jan 30, 2022

SSH, SSH Command Tips and Tricks

Secure shell (SSH) is one of the most ubiquitous Linux tools. It provides secure connectivity among workstations, servers, managed switches, routers, and any number of other devices. Linux and macOS include SSH, and it’s easy to add to Windows. This article provides...

Jan 25, 2022

SSH, The Traps in SSH Config

This series has already covered a few basics about ~/.ssh/config in terms of how to simplify the usage of ssh tunnelling. In order to round this up a bit more, I will add some information you should be aware of about ~/.ssh/config....

Jan 25, 2022

SSH, The Latency Problems

SSH is the most popular and secure method for managing Linux servers remotely. One of the challenges with remote server management is connection speeds, especially when it comes to session creation between the remote and local machines. There are several bottlenecks to...

Jan 24, 2022

SSH, Server Access Internet via SSH Client

I can use my home computer CLIENT to connect by SSH to a server SRV where access to the external network is blocked. In other words, all requests to Internet from SRV throw an error: Network is unreachable. Can I redirect all...

Jan 23, 2022

SSH, Port Forwarding for UDP Packets

Previously we described how SSH port forwarding can be used to securely access other servers in the remote network. This technique is useful for TCP packets. If you need to transmit UDP packets this is slightly more complicated. We will need to...

Jan 22, 2022

SSH, Install SSH Tunnels as Service

Say you have a Linux machine to which you want to ssh to but that machine is behind corporate or other firewalls etc which you have no control over, and thus you can not forward an external port for ssh etc. Let’s...

Jan 21, 2022

SSH, How To Persistent SSH Tunnels

How make a SSH Tunnel persistent? By persistent I mean, that it is made sure the tunnel will always run. For example, once your ssh connection times out (By server-side timeout), your tunnel should be re-established automatically. I know there are plenty...

Jan 20, 2022

SSH, Local and Remote Port Forwarding

When it comes to the art of SSH tunnelling, there are basically two options where to relay a port to. You can relay a port from a remote server to your local machine with ssh -L, hence called Local port forwarding. A...

Apr 12, 2021

Essential CMD, find

If you want to search files by a pattern and then apply something to the results you have at least two choices. You can use find. -exec or you can pipe the results to xargs. There are also two different choices for...

Apr 11, 2021

Essential CMD, cp, scp, sftp

When working on Linux and Unix systems, copying files and directories is one of the most common tasks you’ll perform on a daily basis. cp is a command-line utility for copying files and directories on Unix and Linux systems. SCP (secure copy)...

Apr 10, 2021

Essential CMD, FileSync, Rsync

Rsync (Remote Sync) is an useful command line utility for Unix like systems to synchronize files between two remote systems. A user can also use rsync command to sync files between two directory on same system. The rsync uses delta-transfer algorithm, which...

Mar 31, 2021

Golang News

Update 18 February 2021: Go team plan to drop support for GOPATH mode in Go 1.17. In other words, Go 1.17 will ignore GO111MODULE. 18 February 2021: Go plan to make go get STOP installing binaries 18 February 2021: Go plan to...

Mar 31, 2021

Excellent Projects Built Using Golang

The Excellent Projects Built Using Golang… HTTP Server Caddy Database InfluxDB TiDB Messaging Platform (MQ) NSQ Frameworks Beego Gorilla Cloud Native Architecture (Arch) Docker Kubernetes (K8S) ETCD Caching System GroupCache HTTP Server Caddy Caddy Repo on Github.com Caddy Home Page Host a...

Mar 31, 2021

Bookmarks for Go

Go.dev is a companion website to golang.org. golang.org is the home of the open source project and distribution, while go.dev is the hub for Go users providing centralized and curated resources from across the Go ecosystem. A List of Golang books GOPL.IO...

Mar 30, 2021

How to Write Go Code

Very Important Notes: Starting in Go 1.13, Module mode will be the default for all development. A module is a collection of Go packages stored in a file tree with a go.mod file at its root. The go.mod file defines the module’s...

Mar 30, 2021

Everything About GO111MODULE

Update 18 February 2021: Go team plan to drop support for GOPATH mode in Go 1.17. In other words, Go 1.17 will ignore GO111MODULE. This is a big step toward using modules in all projects. If you have projects that do not...

Mar 9, 2021

GOPL CH08 Goroutines and Channels

Concurrent programming, the expression of a program as a composition of several autonomous activities, has never been more important than it is today. Web servers handle requests for thousands of clients at once. Tablet and phone apps render animations in the user...

Mar 8, 2021

GOPL CH07 Interfaces

Interface types express generalizations or abstractions about the behaviors of other types. By generalizing, interfaces let us write functions that are more flexible and adaptable because they are not tied to the details of one particular implementation. Many object-oriented languages have some...

Mar 7, 2021

GOPL CH06 Methods

Since the early 1990s, object-oriented programming (OOP) has been the dominant programming paradigm in industry and education, and nearly all widely used languages developed since then have included support for it. Go is no exception. Although there is no universally accepted definition...

Mar 6, 2021

GOPL CH05 Functions

A function lets us wrap up a sequence of statements as a unit that can be called from elsewhere in a program, perhaps multiple times. Functions make it possible to break a big job into smaller pieces that might well be written...

Mar 5, 2021

GOPL CH04 Composite Types

In Chapter 3 we discussed the basic types that serve as building blocks for data structures in a Go program; they are the atoms (原子) of our universe. In this chapter, we’ll take a look at composite types, the molecules (分子) created...

Mar 4, 2021

GOPL CH03 Basic Data Types

It’s all bits at the bottom, of course, but computers operate fundamentally on fixed-size numbers called words, which are interpreted as integers, floating-point numbers, bit sets, or memory addresses, then combined into larger aggregates that represent packets, pixels, portfolios, poetry, and everything...

Mar 3, 2021

GOPL CH02 Program Structure

In Go, as in any other programming language, one builds large programs from a small set of basic constructs. Variables store values. Simple expressions are combined into larger ones with operations like addition (+) and subtraction (-). Basic types are collected into...

Mar 2, 2021

GOPL CH01 Tutorial

This chapter is a tour of the basic components of Go. We hope to provide enough information and examples to get you off the ground and doing useful things as quickly as possible. The examples here, and indeed in the whole book,...

Mar 1, 2021

GOPL CH00 Preface

“Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.” ( From the Go web site at golang.org ) The Origins of Go The Go Project Organization of the Book Where to Find More...

Feb 5, 2021

How to Enable SSL on Web

Let’s Encrypt is a free, automated, and open certificate authority brought to you by the Internet Security Research Group (ISRG). ZeroSSL is the first real alternative to Let’s Encrypt, offering completely free SSL certificates through an easy-to-use UI and API. but one...

Feb 3, 2021

The Apache Tomcat Server

The Apache Tomcat software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta EE platform. There are many ways to compare...

Feb 2, 2021

The Apache HTTP Server

There are many ways to compare Tomcat vs. the Apache HTTP Server, but the fundamental difference is that Apache Tomcat is a web container, It allows the users to run Servlet and JAVA Server Pages that are based on the web-applications. Tomcat...

Feb 1, 2021

CVS - The Legacy of Version Control System

Concurrent Versions System (CVS, also known as the Concurrent Versioning System) is a revision control system originally developed by Dick Grune in July 1986. CVS is an important component of Source Configuration Management (SCM). Using it, you can record the history of...

Jan 5, 2021

Date and Time Manipulation in BASH

Although bash is a powerful scripting environment it is a bit deficient, compare to other scripting languages, when it comes to date/time calculations. There are no convenient, generally available, date functions such as datediff or overloaded operators for mathematically manipulating dates and...

Jan 3, 2021

Control Flow (aka Flow of Control) in BASH

Control flow is a fundamental concept in programming languages that dictates the order in which statements are executed within a program. It enables you to make decisions, iterate over data, and control the flow of execution based on conditions or other factors....

Apr 3, 2020

Google Tips and Tricks

Pretty much everything is available on the internet, and Google is one of the main ways people search for information. And while you might think it’s obvious, many internet users don’t know how to use Google search efficiently and effectively. In truth,...

Apr 2, 2020

Basic English Words for Developers

Even if you’re a top-tier developer, a solid understanding of the more practical side of English grammar can help you really stand out. In this article, we’ll outline how learning English for developers can help you get a leg up on the...

Apr 2, 2020

English Syntax Examples

Syntax is the grammatical structure of sentences. The format in which words and phrases are arranged to create sentences is called syntax. 英语的二十种时态 汉语用词表达,英语用形式表达 什么是时态 时间的定义 状态的定义 动词的十二类时态 一般式 进行式 完成式 完成进行式 过去将来时 为什么第三人称单数时动词要加 S References 英语的二十种时态 汉语用词表达,英语用形式表达 过去完成时:我昨天吃了饭 过去进行时:我昨天在吃饭的时候看见了那只猫 现在完成时:我吃过饭了 现在进行时:我正在吃饭...

Apr 1, 2020

Markdown sample

Overview Markdown is a text-to-HTML conversion tool for web writers. Markdown based on conventions for indicating formatting in email and usenet posts. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid HTML. Markdown...

Feb 1, 2020

Markdown Reference | Typora

Overview Markdown is created by Daring Fireball; the original guideline is here. Its syntax, however, varies between different parsers or editors. Typora try to follow GitHub Flavored Markdown, but may still have small incompatibilities. Overview Block Elements Paragraph and line breaks Headers...

Jan 2, 2020

Where Are My Documents Stored?

Where are my documents stored? The most common cloud service is file storage, A branch of folders and files on your computer’s mass storage system, and, a lot of informations stored in Mail services, and more … Mac OS X WWW Apps...

Jan 1, 2020

Welcome

Welcome to www.netmask.dev

Powered by www.netmask.dev