Kubernetes Quick Start
Learning curve for Kubernetes (K8s) could be steep. For most users who are already familiar with basic networking, OS/Linux, docker container technologies etc, the difficulties , I personally think, is…
webassembly and web audio worklet
Some notes: web assembly: a cool technology allows you to compile c/c++/rust and other languages into wasm, expose API to javascript world. Web audio worklet/worker: allows developer to intercept audio…
How to use gradle to build java app/project from command line
Install gradle ( on debian 10) Follow https://linux4one.com/how-to-install-gradle-on-debian-10/ download latest gradle at: https://gradle.org/releases/ for example: wget https://services.gradle.org/distributions/gradle-6.2.1-bin.zip -P /tmp sudo unzip -d /opt/gradle /tmp/gradle-6.2.1.zip sudo nano /etc/profile.d/gradle.sh export GRADLE_HOME=/opt/gradle/gradle-6.2.1 export…
C++ how to replace mutex code with CAS ( compare and exchange ) ( lock-less programming )
It is well known that if mutex protected codes could potentially be replaced by atomic compare exchange, thus we cab achieve lock-less programming. In practice, it may need several techniques…
Janus Video Room plugin (how webrtc sfu works)
Repo: https://github.com/meetecho/janus-gateway code: video sfu code at: plugins/janus_videoroom.c How sub/pub works: in its plugin implementation: plugins/janus_videoroom.c , there is: struct janus_videoroom_publisher { GSList subscribers; / Subscriptions to this publisher (who’s watching…
how to cherry-pick a merge commit
Problem: For example: I have a merge in main dev branch, I want to cherry-pick that merge into a relatively old prod branch, If we directly do: git cherry-pick merge_commit_in_dev_branch,…
How to synchronize audio video stream (a/v sync)
How to a/v sync in IETF RFC? The RFC specified how to do a/v sycn generally in https://tools.ietf.org/html/rfc6051 RTP flows are synchronised by receivers based on information that is contained…
how to submit a patch to google’s webrtc native
I recently submitted a patch to webrtc native. https://webrtc-review.googlesource.com/c/src/+/143841 https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/discuss-webrtc/zn4kmjflvt4 The process is not that difficult, but there could be some caveats depending on your os version etc. Here is my…
vim how to install vim-grammarous plugin ( grammar check )
vim has a grammar check plugin https://github.com/rhysd/vim-grammarous 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…
H.264 profile-level-id, packetization-mode, NAL, I-frame, I-slice
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…