Pretty Good Privacy (PGP) is a robust encryption program that ensures privacy and authentication for data communication. Developed by Phil Zimmermann in 1991, it’s widely used for securing emails, files, and directories. This article explores the technical details of PGP, including its algorithms, key management, and detailed processes for encryption, decryption, and signing. Cryptographic Foundations
Read more
Tag: C
Mapping Left Alt to Ctrl for Windows Keyboard to Be Similar to macOS
Posted onAs a dedicated macOS user, I often find myself missing the convenience of having a Command key located near my thumb for common shortcuts when using Windows. In the standard Windows keyboard layout, the key that occupies the same position as the Command key on macOS is the Alt key. However, the equivalent key on
Read more
Understanding the Use of std::any in C++ with an Example
Posted onC++ std::any is a type-safe container for single values of any type. It is useful to put multiple types into a single container such as std::vector which requires all elements stored have the same “type”. It is a part of the C++17 standard library. This blog post will take a close look at a certain
Read more
Resource Acquisition Is Initialization (RAII) in C++ with Detailed Examples
Posted onIn this post, we will discuss Resource Acquisition Is Initialization (RAII), a programming idiom in C++ that helps manage resources such as memory, file handles, and network connections. By leveraging constructors, destructors, and scope-bound resource management, RAII enables the creation of more reliable and maintainable C++ code. RAII can not only achieve mostly what a
Read more
Run-Time Type Identification (RTTI) in C++ with Detailed Examples
Posted onIn this post, we will discuss Run-Time Type Identification (RTTI) in C++, a feature that allows us to obtain type information for objects at runtime. We will explore how RTTI works, its applications, and provide detailed examples to demonstrate its usage using snake_case naming convention. What is Run-Time Type Identification (RTTI)? Run-Time Type Identification (RTTI)
Read more
Visualizing CMake Project Dependencies with Graphviz
Posted onWhen working on a large-scale C++ project with multiple dependencies, it can be challenging to understand the relationships between different components and libraries. Thankfully, CMake provides a nifty feature to visualize these dependencies using Graphviz, a widely-used open-source graph visualization software. Using CMake’s –graphviz option and the dot command from Graphviz is a powerful way
Read more
Splitting a String by Another String in C++: A Flexible Utility Function
Posted onIn this post, we will explore a flexible utility function for splitting a string based on a given delimiter using C++ and the standard library. This allows us to break down complex strings into smaller parts that are easier to process and manipulate. The C++ Utility Function to Split a String by Another String Background:
Read more
Installing Zlib in Ubuntu 22.04
Posted onZlib is a popular open-source compression library used by many software applications to compress and decompress data. It provides fast and efficient compression and decompression algorithms that can be used to reduce the size of data, which can improve performance and reduce storage requirements. In this post, we will discuss how to install zlib in
Read more
Why std::vector is the Optimal Choice for Data Structures for Performance in C++
Posted onIn C++ programming, data structures are essential for organizing and manipulating data. When it comes to storing and manipulating data, one data structure stands out above the rest – the std::vector. Efficient Memory Allocation One of the primary benefits of std::vector is its efficient memory allocation. std::vector uses contiguous memory allocation, which means that the
Read more
Linux Kernel 4.19.178 Release
Posted onThis post summarizes Linux Kernel new features, bugfixes and changes in Linux 4.19.178 Release. Linux 4.19.178 Release contains 248 changes, patches or new features. In total, there are 239,909 lines of Linux source code changed/added in Linux 4.19.178 release compared to Linux 4.19 release. To view the source code of Linux 4.19.178 kernel release online,
Read more
Linux Kernel 4.14.223 Release
Posted onThis post summarizes Linux Kernel new features, bugfixes and changes in Linux 4.14.223 Release. Linux 4.14.223 Release contains 176 changes, patches or new features. In total, there are 277,921 lines of Linux source code changed/added in Linux 4.14.223 release compared to Linux 4.14 release. To view the source code of Linux 4.14.223 kernel release online,
Read more
Linux Kernel 5.4.102 Release
Posted onThis post summarizes Linux Kernel new features, bugfixes and changes in Linux 5.4.102 Release. Linux 5.4.102 Release contains 338 changes, patches or new features. In total, there are 160,715 lines of Linux source code changed/added in Linux 5.4.102 release compared to Linux 5.4 release. To view the source code of Linux 5.4.102 kernel release online,
Read more
Linux Kernel 4.9.60 Release
Posted onThis post summarizes Linux Kernel new features, bugfixes and changes in Linux 4.9.60 Release. Linux 4.9.60 Release contains 24 changes, patches or new features. In total, there are 64,224 lines of Linux source code changed/added in Linux 4.9.60 release compared to Linux 4.9 release. To view the source code of Linux 4.9.60 kernel release online,
Read more
Linux Kernel: xt_quota: report initial quota value instead of current value to userspace
Posted onThis change “xt_quota: report initial quota value instead of current value to userspace” (commit 49daf6a) in Linux kernel is authored by Changli Gao <xiaosuo [at] gmail.com> on Fri Jul 23 14:07:47 2010 +0200. Description of “xt_quota: report initial quota value instead of current value to userspace” The change “xt_quota: report initial quota value instead of
Read more
Release Notes For Linux v2.0
Posted onThis is the release notes for linux release v2.0 (source code: linux-2.0.tar.gz) with format adjusted by removing/replacing tabs/spaces/new lines/formatting marks. This notes document can give us an understanding of the early development of the Linux kernel. The original ASCII formatted version is at the end of this post. Intro This document contains a list of
Read more
Release Notes For Linux v1.0
Posted onThis is the release notes for linux release v1.0 (source code: linux-1.0.tar.gz) with format adjusted by removing/replacing tabs/spaces/new lines. This notes document can give us an understanding of the early development of the Linux kernel. The original ASCII formatted version is at the end of this post. CHANGES since 0.99 patchlevel 15: removed all the
Read more
Release Notes For Linux v0.95
Posted onThis is the release notes for linux release v0.95 (source code: linux-0.95.tar.gz) with format adjusted by removing/replacing tabs/spaces/new lines. This notes document can give us an understanding of the early development of the Linux kernel. The original ASCII formatted version is at the end of this post. RELEASE NOTES FOR LINUX v0.95 Linus Torvalds, March
Read more
Release Notes For Linux v0.12
Posted onThis is the release notes for linux release v0.12 (source code: linux-0.12.tar.gz) with format adjusted by removing/replacing tabs/spaces/new lines. This notes document can give us an understanding of the very initial development of the Linux kernel. Also check Notes for linux release 0.01. The original ASCII formatted version is at the end of this post.
Read more
Release Notes For Linux v0.01
Posted onThis is the notes for linux kernel release 0.01 (source code: linux-0.01.tar.gz) with format adjusted by removing/replacing tabs/spaces/new lines. This notes document can give us an understanding of whether the Linux kernel started with its very first release. The original ASCII formatted version is at the end of this post. Notes for linux release 0.01
Read more
Linux Kernel 5.4.72 Release
Posted onThis post summarizes Linux Kernel new features, bugfixes and changes in Linux 5.4.72 Release. Linux 5.4.72 Release contains 23 changes, patches or new features. In total, there are 126,508 lines of Linux source code changed/added in Linux 5.4.72 release compared to Linux 5.4 release. To view the source code of Linux 5.4.72 kernel release online,
Read more