Rico's Nerd Cluster

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

Web Devel - Storing Data on Google Drive

Google Drive

For personal projects, all AWS services will start charging once one service starts. Google drive on the other hand, gives everybody 5GB of storage for free. So for infrequent data read / write, Go...

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, CMake Syntax

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...