Is it possible to take fine-grained control on a program after it being compiled? Directly manipulating the machine code in the binary can be an approach. As impractical as it sounds, this technique can be used to tackle real-world problems, as shown in this article.
Bypass Instructions in ELF with radare2
It's handy to instruct an executable to use a different version of libc when encountering some compatibility issues. By patching the binary, this change can be made permanent.
Patch Binary to Use An Alternative Libc
Aimed to bring the interactive C++ experience to the Internet, cline is a web application built upon many brilliant ideas. Discover the magic behind the user interface in this open-source project.
Cline The Online C++ Interpreter
The column index of a node in a complete binary tree encodes the path to reach it from the root. A simple and efficient encode/decode scheme can be made upon this result, and facilitate other algorithm implementations.
Path and Positional Encoding In a Binary Tree
A brief summary to the GSoC-2022 Project - thrift for zephyr, which I have contributed to.
Review of My GSoC-2022 Project
It's well known that inappropriate use of std::shared_ptr can lead to memory leak due to circular reference. In this article, a simple case where circular reference can happen on std::unique_ptr is demonstrated, and the method to avoid it is suggested.
A Simple Memory Leak Scenario with unique_ptr
Objects lifetime management is one of the critical elements in C++ development, but corresponding tools for debugging are rather scarce. This article described a non-invasive to track the invocation of ctors and dtors of classes in C++, which is enabled with the decorator pattern.
Track Lifetime of Objects in C++
Placement new is a rarely used feature in C++. This article gives a brief introduction to this feature, and shows how it can be helpful in the implementation of circular linked lists.
Circular Linked List and Placement new
An open-source RISC-V 64 single board computer under 10$ based on Allwinner D1s SoC
Sub-10$ RISC-V 64 SBC
Get the pin assignment of a board without destroying it.
a Non-invasive Way to Investigate IO Connections
A three.js demo to visualize high-dimensional geometries like hypercubes.
