| | |

The Role of DEX Aggregators and Routers in Decentralized Trading

In the decentralized finance (DeFi) ecosystem, decentralized exchanges (DEXs) enable users to trade cryptocurrencies without intermediaries. However, with the growing number of DEXs offering varying levels of liquidity, fees, and trading pairs, navigating this landscape efficiently can be challenging. DEX aggregators and routers are tools designed to optimize trading, but they serve different purposes. This…

|

Understanding Temporary Forks and Reorganization in Blockchain

Temporary forks and chain reorganizations (reorgs) are natural occurrences in decentralized blockchain systems. They arise due to the asynchronous nature of block propagation across the network. While temporary forks are short-lived and resolved quickly, chain reorganization refers to the process by which the blockchain discards one branch in favor of a longer or higher-priority chain….

| |

A Comprehensive Guide to PGP: Technical Deep Dive

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…

|

Mapping Left Alt to Ctrl for Windows Keyboard to Be Similar to macOS

As 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…

|

Understanding the Use of std::any in C++ with an Example

C++ 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…

|

Resource Acquisition Is Initialization (RAII) in C++ with Detailed Examples

In 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…

|

Run-Time Type Identification (RTTI) in C++ with Detailed Examples

In 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)…

| |

Visualizing CMake Project Dependencies with Graphviz

When 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…

|

Splitting a String by Another String in C++: A Flexible Utility Function

In 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:…

| |

Installing Zlib in Ubuntu 22.04

Zlib 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…

|

Why std::vector is the Optimal Choice for Data Structures for Performance in C++

In 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…

|

Linux Kernel: xt_quota: report initial quota value instead of current value to userspace

This 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…

| |

Release Notes For Linux v2.0

This 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…

|

Release Notes For Linux v1.0

This 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…

Release Notes For Linux v0.95

This 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…