weiqiang.shan's blog
tagsabout

    2026

  • ABI Compatibility, Compilation Firewalls, and Linking - August 29, 2026
  • Polymorphism, Type Erasure, and std::function - August 23, 2026
  • Undefined-Symbol Policies When Linking Executables and Shared Libraries - August 23, 2026
  • Keeping Type-Erased Components Type-Compatible - August 23, 2026
  • ROS 2 Type Erasure with Generic Pub/Sub - August 22, 2026
  • C++ Compilation Firewalls II - August 16, 2026
  • C++ Compilation Firewalls I - August 15, 2026
  • How ROS 2 Binds a Message Type to Fast DDS - August 01, 2026
  • ROS 2 Generated Message Runtime Dependencies - August 01, 2026
  • Network Paths: Routing, NAT, and State - July 25, 2026
  • VMware Fusion Networking on macOS - July 19, 2026
  • Python/C IX — Inheritance Handle Pool - July 11, 2026
  • Type Erasure VIII — Final Thoughts - July 05, 2026
  • Type Erasure VII — std::any - July 05, 2026
  • Type Erasure VI — dynamic_cast & RTTI - July 05, 2026
  • Double Dispatch with std::variant and std::visit - July 05, 2026
  • Closed Tagged Dispatch — std::variant - July 05, 2026
  • Double Dispatch and the Visitor Pattern in C++ - July 04, 2026
  • Python/C VIII — Extensions vs Bindings - June 21, 2026
  • Python/C VII — pybind11 - June 21, 2026
  • Python/C VI — ROS 2 Bindings - June 20, 2026
  • Python/C V — Handle Pool - June 20, 2026
  • Python/C IV — Structs & Handles - June 19, 2026
  • Python/C III — ctypes & CFFI - June 19, 2026
  • Python/C II — tp_call - June 19, 2026
  • Python/C I — PyTypeObject - June 19, 2026
  • Type Erasure IV — ROS 2 Messages - June 13, 2026
  • Agents as Universal Interfaces - April 08, 2026
  • Protobuf vs JSON Compatibility - April 02, 2026
  • Linux Shared Libraries: SONAME and RPATH - April 02, 2026
  • Precision Time Protocol (PTP) - February 14, 2026
  • Static vs Dynamic Typing and Type Erasure - February 07, 2026
  • All-In-One Routers - January 24, 2026
  • The Selfish Gene: Keynotes - January 10, 2026
  • Computer Graphics Software Stack - January 02, 2026
  • 2025

  • Python Signal Handling - December 13, 2025
  • Floyd's Cycle Detection: Tortoise and Hare - August 17, 2025
  • Type Systems IV — Python Runtime Types - August 10, 2025
  • Type Systems III — JSON Types - August 10, 2025
  • Type Erasure III — Trade-offs - July 08, 2025
  • Type Erasure II — std::function - June 29, 2025
  • Type Systems II — Protobuf Reflection - June 14, 2025
  • Compile Time vs Run Time - June 12, 2025
  • Static Storage and Nifty Counter - May 23, 2025
  • Type Erasure I — Core Logic - April 20, 2025
  • Reactor and Proactor: Event-Driven I/O Patterns - March 29, 2025
  • C++ Expressions and Value Category - February 28, 2025
  • Variable-Length Shared-Memory Ring Buffer - January 12, 2025
  • 2024

  • C++ Symbols and the ODR - November 03, 2024
  • C++ Object Lifetime - October 26, 2024
  • CMake Best Practices - September 18, 2024
  • C++ Standard Library Containers: Cheat Sheet - August 31, 2024
  • Type Systems I — Data & Type Format - July 14, 2024
  • Linux clone() System Call - June 30, 2024
  • Reference Counting in Systems - June 23, 2024
  • The Mapping Design Pattern - June 09, 2024
  • Linux futex - June 08, 2024
  • AUTOSAR Service Model: A Big Picture - June 08, 2024
  • ara::com API: Part III — Skeleton Class - June 01, 2024
  • pimpl vs Virtual Class - May 25, 2024
  • I/O Buffers: User vs Kernel - May 19, 2024
  • Life of a TCP Segment - May 19, 2024
  • ara::com API: Part II — Proxy and Events - May 12, 2024
  • ara::com API: Part I — Proxy/Skeleton Model - May 05, 2024
  • std::condition_variable Deep Dive - April 27, 2024
  • C++ Smart Pointers: Lifecycle - April 21, 2024
  • C++ Smart Pointer Memory Model - April 20, 2024
  • SOME/IP Protocol Overview - April 19, 2024
  • SOME/IP Service Discovery - April 08, 2024
  • C++ Parameter Binding - April 05, 2024
  • Docker CLI Architecture - March 20, 2024
  • C++ Callables and std::invoke - January 21, 2024
  • 2023

  • pimpl and unique_ptr Incomplete Type - December 24, 2023
  • C++ Member Function Overload Resolution - November 23, 2023
  • CRTP and Mixin Inheritance in C++ - October 13, 2023
  • A C++ Programmer's Guide to Rust - August 12, 2023
  • Python Metaclasses: Class Creation - June 24, 2023
  • Python Decorators - May 02, 2023
  • C++ Template Name Lookup - May 01, 2023
  • Python Descriptors: Descriptor Protocol - April 22, 2023

Tags

  • cpp 34
  • python 14
  • type-erasure 13
  • polymorphism 12
  • linux 11
  • serialization 9
  • ffi 9
  • memory-management 8
  • type-systems 7
  • networking 7
  • middleware 7
  • automotive 7
  • abi 6
  • shared-libraries 5
  • ros2 5
  • python-extensions 5
  • concurrency 5
  • templates 4
  • object-model 4
  • metaprogramming 4
  • linking 4
  • language-semantics 4
  • language-design 4
  • ctypes 4
  • compilation-firewalls 4
  • autosar 4
  • systems-design 3
  • rtti 3
  • routing 3
  • protobuf 3
  • object-lifetime 3
  • data-structures 3
  • synchronization 2
  • someip 2
  • smart-pointers 2
  • reflection 2
  • pimpl 2
  • nat 2
  • json 2
  • ipc 2
  • filesystems 2
  • double-dispatch 2
  • code-generation 2
  • closed-tagged-dispatch 2
  • virtualization 1
  • time-synchronization 1
  • terminals 1
  • storage 1
  • signals 1
  • schema-evolution 1
  • rust 1
  • processes 1
  • parameter-passing 1
  • overload-resolution 1
  • odr 1
  • macos 1
  • interpreter 1
  • graphics 1
  • genetics 1
  • evolution 1
  • event-driven-io 1
  • containerization 1
  • compilation 1
  • build-systems 1
  • algorithms 1
  • ai-agents 1

weiqiang.shan's blog

  • {"name"=>"weiqiang.shan", "email"=>"schmessi@163.com"}
  • schmessi@163.com
  • shan-weiqiang