2018年9月23日 星期日

汽車變速箱小結

手動排檔


MT手排:簡單、可靠、頓挫感重、自行控管離合

自動排檔


AMT自動的手排:同MT,現少見,多為低端車使用
AT自排:檔位少則頓挫耗油、檔位多則複雜度大幅提升,保養修繕費用可觀
DSG/DCT雙離合:理念不錯,然而乾式多問題
CVT無段變速:大腳煞車、油門較傷變速箱,適合平順行駛

2018年7月3日 星期二

JNI at Anfroid Studio

要裝jdk

在android studio建立project,建立時include C++ support

宣告一個function
public native String hihi();

產生header檔 ( or https://www.google.com.tw/search?q=c+header+in+android+studio)

JNIEXPORT jstring JNICALL Java_com_example_ycsheu_myapplication_MainActivity_hihi  (JNIEnv *, jobject);

實作之

2018年6月10日 星期日

RSA

public key 有 n, e
private key 有 p, q
d = e^-1(mod f(n))

破解流程:n已知,已知n = pq,因數分解得p, q,而後可得d。困難點在於難以因數分解p, q

Ref
http://m0x39.blogspot.com/2012/12/0x00-introduction-this-post-is-going-to.html
英文流程,cracking 768bits RSA

http://slides.com/zal/151220#/4
中文slides

http://jianiau.blogspot.com/2015/07/openssl-generating-rsa-key.html
中文openssl操作rsa

2018年5月1日 星期二

Some c++ usage

virtual function

class A{
void foo(){ puts("foo_A"); }
}
class B : A{
void foo() { puts("foo_B"); }
}
B b;
A *p;
p = &b;
p.foo();

expected result : foo_A

class A{
virtual void foo(){ puts("foo_A"); }
}
class B : A{
virtual void foo() override{ puts("foo_B"); }
}
B b;
A *p;
p = &b;
p.foo();
expected result : foo_B

reference

virtual function - abstract class

class C{
virtual void haha() = 0;
}
C c; // error, abstract class can't create instance
class D : C{
virtual void haha() override{ puts("foo_B"); }
}

reference

const after function

 void foo() const

means : foo函式不能修改class內的data member

reference

2018年4月27日 星期五

llvm execute DEBUG() macro

Some of Instructions are in DEBUG() macro, to execute it, add -debug parameter in opt
http://llvm.org/docs/ProgrammersManual.html#id36

2018年4月10日 星期二

機車術語解釋

空燃比:空氣與燃料的比例
    可調。通常是15或0.067左右。在化油器調整。高低海拔有不同數值。噴射引擎之優勢在於可在行駛過程中動態調整空燃比減少不必要之耗油(ex:騎化油車登武嶺,途中改變空燃比較不容易
油氣比:同空燃比


壓縮比:汽缸下死點時之容積 / 汽缸上死點時之容積
    柴油引擎壓縮比較高
    不可調

火星塞:汽缸上方點火之裝置,機車的火星塞不貴
    不只發動時需要使用,啟動後在每個cycle中亦須點火引爆以獲得動力

化油器:
    http://www.carnews.com/article-47757.html
    http://javaneo.pixnet.net/blog/post/20494466-%3C%E6%A9%9F%E8%BB%8A%3E%E5%8C%96%E6%B2%B9%E5%99%A8%E5%85%B8%E5%9E%8B%E6%95%85%E9%9A%9C%E5%88%86%E6%9E%90%E8%88%87%E6%8E%92%E9%99%A4
    噴射引擎無化油器,用電腦精密計算控制取代化油器,但須要耗電,若完全沒電則無法發動

油 門:控制化油器內之節流閥開閉程度

汽 門:汽缸內之開口數,分進氣與排氣
    2汽缸加速快尾速慢,因高轉下排氣不順
    4汽缸  慢  快
    2V一進一出 3V兩進一出 4V兩進兩出 5V三進兩出
    http://forum.jorsindo.com/forum.php?mod=viewthread&action=printable&tid=2406296
二行程四行程:
    2T 4T
    2T上下為一循環,4T上下上下為一循環
    4T燃燒完全,較環保
    2T燃燒不完全,吃機油,吐黑煙
    https://tw.answers.yahoo.com/question/index?qid=20070427000010KK06567

踩 發:只要電瓶並非完全死去,多數車種能夠發動
    噴射引擎不一定沒有踩發(ex:susuki)。電瓶之電無法帶動曲軸但有電控制油氣之狀態,靠踩發帶動曲軸則可發動,但完全沒電時噴射引擎無法發動
    有些化油車無電瓶亦可發動,但易燒壞整流器
    https://www.ptt.cc/bbs/biker/M.1281408086.A.D37.html
    電瓶狀態會影響踩發容易度,因位處同一迴路,弱電瓶電壓低下,則踩發產生之部分電力將被電瓶吸收

http://booklook.morningstar.com.tw/pdf/0145026.pdf

2018年2月28日 星期三

C/C++面試題目


constant
https://stackoverflow.com/questions/10091825/constant-pointer-vs-pointer-on-a-constant-value

deep-c slides
https://www.slideshare.net/olvemaudal/deep-c/246

lvalue, rvalue
http://hamersun.blogspot.tw/2012/12/c-lvalues-and-rvalues.html

lvalue reference, rvalue reference
http://hamersun.blogspot.tw/2012/12/lvalue-reference-and-rvalue-reference.html

*pointer vs array[]

**pointer, *pointer vs arrar[][]

reference& vs address&

operator overloading

rules of zero/three/five

polymorphism

template

undefined behavior

memory layout
https://blog.gtwang.org/programming/memory-layout-of-c-program/

https://www.youtube.com/channel/UCIm-u7l65hp5jboSJrB7U5w/videos

2018年2月26日 星期一

C變數宣告之解讀方式與const

從右邊開始往回解讀
char * p;
p是個指標指向char
const char *p;
p是個指標指到char,這個char是常數
char const *p;
p是個指標指到一個常數char
const char * p; 等同於 char const * p;
char * const p;
p是個常數指標指向char
char a[16];中的a就像是個 char * const a;一樣
這是為什麼pointer跟array很接近的原因

2018年1月7日 星期日

4G+記錄

Carrier Aggregation
載波聚合
可以同時使用不同頻段以加速無線網路
有人2CA測得200Mbps
聯發科要MT67XX、P10、X20等等才支援
高通要中階以上,s430、s617,s800系列等等等
Cat.x只代表處理器支援的網路速度,和CA無關。單一頻段頻寬夠大,不用CA也能跑到Cat.x的上限
台版紅米不支援CA
使用CA時,網路圖示多會呈現4G+
2CA理論速度225Mbps
3CA理論速度375Mbps
三星可以進Service Mode查詢。進入方式:對*#0011#打電話
Mobile01的peter大整理的表格
Band
頻段
台灣目前常見的4G頻段700/900/1800/2600MHz
低頻訊號好但承載人數少
高頻訊號死角較多但承載人數多,適合室外
LTE UE-Category (Cat)

python env

# Ubuntu
sudo apt install python python-pip python-dev
pip install --user virtualenv
cd ~
ENV_NAME=tensorflow
mkdir ~/${ENV_NAME}
virtualenv --no-site-packages ${ENV_NAME}
source ~/${ENV_NAME}/bin/activate
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.4.1-cp27-none-linux_x86_64.whl
#url https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package
pip install jupyter pandas

# Windows
# Make sure you download 64bit version python
pip install tensorflow