vim how to install vim-grammarous plugin ( grammar check ) No ratings yet.

vim has a grammar check plugin How to install vim-grammarous? it uses new vim 8+ plugin mechanism, so we can easily install it by: mkdir -p ~/.vim/pack/bundle/start cd ~/.vim/pack/bundle/start git clone   The first time you run the: GrammarousCheck in the vim, it will auto download the languagetool (java jar) etc. How to • Read More »

H.264 profile-level-id, packetization-mode, NAL, I-frame, I-slice No ratings yet.

H.264 profile-level-id in sdp: profile-level-id = 428014  ( remember SDP use hex, wiki/h264 they use decimal ) profile_idc 0x42 == 66 so it is Baseline profile profile-iop 0x80 mean constraint_set0_flag=1 (so it is Constrained Baseline profile) and others 0 level-idc 0x14 == 20 so it is Level 2.0 described the details of h264 profile, level. Profiles • Read More »

c++ coroutine No ratings yet.

Coroutines Internals Coroutines introduction Your first coroutine co_awaiting coroutines   Please rate this rating

How to learn pytorch from scratch No ratings yet.

Pytoch is a quite powerful, flexible and yet popular deep learning framework. The learning curve could be steep if you do not have much deep learning background. So what is a good way to learn it? The official pytorch webiste has some great tutorials at: IMHO those materials are tuned to some intermediate level • Read More »

how to prevent nvidia GPU hangup on ( debian 10) 5/5 (2)

debian 10 have nvidia GPU driver, cuda 9 etc, it is a good thing  for deep learning ( keras or pytorch). but  if let it running for some time ( without any interrupt), it hang after the power management kick in. Work around is to turn off the power management by doing: sudo systemctl mask • Read More »

gdb and signal handling ( especially sigwaitinfo ) 5/5 (1)

How gdb generally works In a debugging session, when the debugger wants to set a breakpoint, it replaces an instruction by int3 When the trap instruction (0xCC on x86) is executed, the processor notifies the OS. On UNIX, the OS checks to see whether the process is being ptraced by somebody. If no, the SIGTRAP signal is delivered to • Read More »

c++ why std::shared_ptr need atomic_store, atomic_load or why we need atomic shared_ptr No ratings yet.

shared_ptr is some sort of confusing especially why we need atomic_store, atomic_load on that. It is NOT thread safe. In fact,  the primary intended use of std::shared_ptr is letting multiple threads control the lifetime of the same object, but not thread-safe. A good summary is: A shared_ptr behaves like a built-in type regarding thread-safety, Concurrent access to distinct • Read More »

c++ pass default shared_ptr reference as nullptr 5/5 (1)

First of all, shared_ptr can be a nullptr.  Nothing wrong passing a null shared pointer. In fact, a null shared pointer is an actual Null Object, which means that it’s designed exactly for those kinds of uses.   but if we want to pass the share_ptr as default nullptr reference, we need to put a const • Read More »

srtp and h.235.6 secure rtp No ratings yet.

SRTP RFCs and h.235 is Not an easy read. Here is my very high level beriefing: AES Encryption (1) AES is the foundation for both srtp and h.235.6 secured rtp AES is symmetric encryption,  it takes those two as input key + IV:  128/192/256-bits length key , ( + optional Initialized vector or counter) src input:    • Read More »