Rico's Nerd Cluster

「离开世界之前 一切都是过程」

Raspberry Pi 4B

Serial Setup, Ubuntu Core

Set Up Rpi For Serial Communication Enable rpi serial: 1 sudo raspi-config Rpi has an option to allow a user to login to the system via serial. Choose no Answe...

ROS1 Infrastructure Notes

A Running List of ROS1 Infrastructure I found Useful

ROS Basics Where ROS binaries are stored In ROS, many packages come in the C++ binary form. They are installed through apt, and are stored in /opt/ros/noetic/lib. ROS Actions The ROS Action rea...

CMake - Concepts and Options

CMake Concepts, Compile Options, Commands, CMake-Format, Header-Only Library, Static Library, fPIC

Concepts CMake is a “write-only” language 😉, because it was only meant to be written, not for reading, jokingly. This is because: The syntax is not quite a real scripting language CMake uses...

My Journey Into CUDA

GPU Architecture, Tensor Cores, SIMD SIMT, Pinned Memory

A Great introduction video can be found here GPU (GA102) Architecture A graphics card’s brain is its GPU. NVidia’s Ampere GPU architecture family has GA102 and GA104. GA102 is shared across NVidi...

Bash Magic

Bash is great. Here is a list of bash tricks & knowledge points that I found magical

Builtins Test [[ -n STRING ]] - returns true when STRING is not empty [[ -z STRING ]] - returns true when STRING is empty equivalent to [[ ! -n STRING ]] [[ -d FILE ]] -...

Cpp Exceptions

Error Throwing

Error Throwing rethrow an error using std::rethrow_exception(std::exception_ptr) 1 2 3 4 5 6 7 8 9 10 11 12 catch (std::exception&) { exptr_ = std::current_exception(); } if (exptr_) { ...

C++ - [Concurrency 6] Memory Model

Introduction The C++ memory model was formally introduced in C++11 mainly for multithreading. Before C++11: Threading was platform-dependent. (POSIX threads for Unit systems) Behavior of sh...

C++ - [Concurrency 5] Coroutine

Coroutine Coroutines in C++ allows us to write asynchronous code in a sequential style. It allows us to resume and suspend, instead of blocking a thread. A coroutine by default is single-threaded,...

C++ - [Concurrency 4] Various Concurrent Methods

Asynchonous Programming, Vectorization, `std::launch`, Lockless array writes, OpenMP, SIMD, SSE2

Asynchronous Programming Single-Threaded Asynchornous Programming Cooperative Multitasking & Pre-emptive Multitasking This is a model where each task voluntari...

C++ - [Concurrency 3] Promise, Future, Packaged_Tasks

promise <> future; packaged_tasks