WebRTC: Compile Native WebRTC Android SDK
The very first step of modifying native WebRTC SDK for Android is cloning source code from WebRTC repository and compiling it into jar.
The very first step of modifying native WebRTC SDK for Android is cloning source code from WebRTC repository and compiling it into jar.
Using some RTOS built-in mbedTLS to connect to AWS IoT Core might fail due to MBEDTLS_ERR_SSL_INVALID_RECORD
(-0x7200 or -29184) during ssl handshake. There are several possible causes:
MBEDTLS_SSL_MAX_CONTENT_LEN
is not enough. Increase MBEDTLS_SSL_MAX_CONTENT_LEN
to 16384 and try again.When we have a build system like Yocto or Buildroot, cross compiling a CMake project is a simple task - We just need to create a simple CMake inherited recipe. If the SoC vendor only provides toolchain for you to cross compile a single CMake project, CMake toolchain file is a good approach.
Sometimes we noticed that printf
will only flush after there is a newline in the print string, this behavior is caused by stdout
stream buffer, which is line buffered by default. This behavior has been mentioned in ISO C99 standard:
There are few options to make it to print immediately once you called it.
SSH connection will automatically drop due to timeout if there is no operation for a period. To keep connection alive, we can config ssh client to send a keepalive periodically. In ~/.ssh/config, there is a parameter for this:
1 | ServerAliveInterval 60 |
If we set this value to 60, SSH client will send a keepalive every 60 seconds.
Algorithm Puzzles everyday every week sometimes: Symmetric Tree
Algorithm Puzzles everyday every week sometimes: Number of Islands
Last week when I was trying to run tshark in a Docker container to capture http packets, tshark reported following error even with root user:
1 | tshark: Couldn't run /usr/bin/dumpcap in child process: Operation not permitted |
After searching, to access dumcap, we need to add --cap-add
options when start container, then add user into wireshark group:
1 | docker run --cap-add=NET_RAW --cap-add=NET_ADMIN $IMAGE |
Jenkins is running on port 8080 by default, thus user need to manually add :8080 when access Jenkins. If we make it running on port 80(default http port), user will no longer need to type port number manually.