|Tools| Useful Linux Commands

.在特定類型的文件裡找字串
grep -ir “ooxx“ –include=”*.java”

.掛載外接硬碟
sudo fdisk -l
mkdir /media/usb
sudo mount -v -t auto /dev/sdb1 /media/usb

.找特定類型的檔案
find -iname *.git

.確認編譯出來檔案的 ELF
readelf

.列出所有執行的東西
ps -Al

.用 string2 取代 file1 裡的 string1,存成 file2
awk ‘{gsub(/string1/,”string2″)}1’ file1 > file2

|Coding| C++ smart pointers: unique_ptr, shared_ptr, strong pointer(sp, Android)

In C++, smart pointers, unique_ptr and shared_ptr, are very common.
If you develop on Android, you may have seen strong pointer(sp), it is also a smart pointer.
Some notes about those pointers.

strong pointer in Android, can be saw as shared_ptr.
shared_ptr has a counter to record who is using this pointer in order to prevent dangerous pointer managements.

|Design| Synchronous v.s. Asynchronous

This article will distinguish Synchronous and Asynchronous.
I just want to say forget your Chinese ……

中文DefinitionAPI and callbackBlock
Synchronous同步While the API receiving the callback remains on the stack, you would expect that the callback had been invoked on each element.in the same threadBlock
Asynchronous非同步Callback is invoked after a function returns, or at least on another thread’s stack.
while the API receiving the callback remains on the stack, the callback may not have been called, since it’s waiting for the connection to complete.
multi-threadnon-block

Therefore, if you want to design asynchronous APIs, keep your threads safety.


這邊很常有個謬誤:
非同步,中文看起來很像是:排排隊,一個做完再做下一件事。
同步,看起來很像是:有兩個 thread,一起做事。
事實上,非常抱歉,以英文及程式的定義來說剛好反過來!


Ref.
Good article:
https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/
Translation:
https://www.eebreakdown.com/2015/09/callback-apis.html?m=1

https://blog.huli.tw/2019/10/04/javascript-async-sync-and-callback/
https://www.ithome.com.tw/node/74544