鐵釘
用於一般木料之接合,通常使用於室內。
鋼釘
接和水泥牆面或木料與水泥材料,硬度高,不易鏽蝕
銅釘
用於木質飾品之接合固定,價格較低
木螺絲
用於木料或搭配壁虎使用於水泥材料
鐵板牙螺絲
用於固定鐵板材之物件,搭配華司使用可增加鎖固能力
鑽尾螺絲
又稱自攻螺絲,末端鑽尾設計可較輕鬆鑽穿軟金屬材料
安卡壁虎
埋入水泥中搭配螺釘使用,使其膨脹於恐壁,增加牢固
膨脹螺絲
埋入水泥材質中,做螺釘上固定,一般為較大載重使用
華司
搭配羅斯使用,增加鎖固面積,加強鎖固能力
2016年9月29日 星期四
2016年9月27日 星期二
android app 開發安裝
觀念:
1. 安裝JDK
2. 安裝Eclipse或者Android Studio
3. Eclipse or Android Studio 都要安裝Android SDK, Android Studio內建,Eclipse要去抓Android Studio 的 Android SDK
4. 安裝設定模擬器
5. 也可以直接run在手機
1. 安裝JDK
2. 安裝Eclipse或者Android Studio
3. Eclipse or Android Studio 都要安裝Android SDK, Android Studio內建,Eclipse要去抓Android Studio 的 Android SDK
4. 安裝設定模擬器
5. 也可以直接run在手機
2016年9月19日 星期一
Recursion Algorithm
1.
一般來說,有兩種方式可以撰寫具有重覆執行 (Repetitive)特性的演算法:
Iteration (迴圈)
Recursion (遞迴)
Def: algorithm 中含有self-calling (自我呼叫)敘述存在。
2.遞迴的種類:
直接遞迴 (Direct Recursion):
函式或程序直接呼叫本身時稱之。
void function(void)
{
function(void);
}
間接遞迴 (Indirect Recursion):
函式或程序先呼叫另外的函式,再從另外函式呼叫原來的函式稱之。
void function(void)
{
function1()
void function1(void)
{
function();
}
}
3.遞迴演算法則的設計:
找出問題的終止條件 (即:base case).
找出問題本身的遞迴關係 (即:general case).
Procedure 遞迴副程式名(參數)
{
if (base case)
return(結果); ……//達到終止條件時結束遞迴,需要時回傳結果
else
general case; ……//利用general case執行遞迴呼叫,需要時加上return
}
一般來說,有兩種方式可以撰寫具有重覆執行 (Repetitive)特性的演算法:
Iteration (迴圈)
Recursion (遞迴)
Def: algorithm 中含有self-calling (自我呼叫)敘述存在。
2.遞迴的種類:
直接遞迴 (Direct Recursion):
函式或程序直接呼叫本身時稱之。
void function(void)
{
function(void);
}
間接遞迴 (Indirect Recursion):
函式或程序先呼叫另外的函式,再從另外函式呼叫原來的函式稱之。
void function(void)
{
function1()
void function1(void)
{
function();
}
}
3.遞迴演算法則的設計:
找出問題的終止條件 (即:base case).
找出問題本身的遞迴關係 (即:general case).
Procedure 遞迴副程式名(參數)
{
if (base case)
return(結果); ……//達到終止條件時結束遞迴,需要時回傳結果
else
general case; ……//利用general case執行遞迴呼叫,需要時加上return
}
2016年9月18日 星期日
條件運算子(Conditional Expressions)
變數 = ( 條件運算式 ) ? 變數值1 : 變數值2;
在指定敘述的「=」號右邊是條件運算式,其功能如同if/else條件,使用「?」符號代替if,「:」符號代替else,如果條件成立,就將變數指定成變數值1,否則就是變數值2。
hour = (hour >= 12) ? hour-12 : hour;
上述程式碼使用條件敘述運算子指定變數hour的值,如果條件為true(即不等於0),hour變數值為hour-12,false(等於0)就是hour。
在指定敘述的「=」號右邊是條件運算式,其功能如同if/else條件,使用「?」符號代替if,「:」符號代替else,如果條件成立,就將變數指定成變數值1,否則就是變數值2。
hour = (hour >= 12) ? hour-12 : hour;
上述程式碼使用條件敘述運算子指定變數hour的值,如果條件為true(即不等於0),hour變數值為hour-12,false(等於0)就是hour。
2016年9月17日 星期六
perl quotes
Alternative Quotes: qq, q, qw, qx
print qq/Hello\n/; # same as: print "Hello\n";
print q/He owes $5.00/; # same as: print 'He owes $5.00', "\n";
@states=qw( E T A L ); # same as ("E", "T", "A","L")
$today = qx(date); # same as $today = 'date';
While we usually think of quotes as literal values,
in Perl they function as operators,
providing various kinds of interpolating and pattern matching capabilities.
Perl provides customary quote characters for these behaviors,
but also provides a way for you to choose your quote character for any of them.
In the following table, a "{}" represents any pair of delimiters you choose.
Customary Generic Meaning Interpolates
'' q{} Literal no
"" qq{} Literal yes
`` qx{} Command yes*
qw{} Word list no
// m{} Pattern match yes*
qr{} Pattern yes*
s{}{} Substitution yes*
tr{}{} Transliteration no (but see below)
<<EOF here-doc yes*
* unless the delimiter is ''.
print qq/Hello\n/; # same as: print "Hello\n";
print q/He owes $5.00/; # same as: print 'He owes $5.00', "\n";
@states=qw( E T A L ); # same as ("E", "T", "A","L")
$today = qx(date); # same as $today = 'date';
While we usually think of quotes as literal values,
in Perl they function as operators,
providing various kinds of interpolating and pattern matching capabilities.
Perl provides customary quote characters for these behaviors,
but also provides a way for you to choose your quote character for any of them.
In the following table, a "{}" represents any pair of delimiters you choose.
Customary Generic Meaning Interpolates
'' q{} Literal no
"" qq{} Literal yes
`` qx{} Command yes*
qw{} Word list no
// m{} Pattern match yes*
qr{} Pattern yes*
s{}{} Substitution yes*
tr{}{} Transliteration no (but see below)
<<EOF here-doc yes*
* unless the delimiter is ''.
perl operators and precedence
operators
+
-
*
/
precedence
4+2*4
(4+2)*4
notice: ++ different location different result
print $num1++ . "\n";
result: 10
print $num1;
11
print ++$num2 . "\n";
11
$letter = "a";
$letter++;
print "$letter\n";
perl variables
$a = 1;
($a , $b) = (1,2);
$c = $a + $b ;
print "$a\n";
print "$b\n";
result: 1 2
print "$c\n";
result: 3
notice:
print "$a + $b \n";
result: 1 + 2
$str = "Hello Wrold!\n";
print "$str\n";
result: Hello World!
my $name = 'Foo';
print 'Hello $name, how are you?\n';
Single quoted result: Hello $name, how are you?\n
print "Hello $name, how are you?\n";
Double quoted result: Hello Foo, how are you?
notice:
$name = 'Foo'; the same as $name = "Foo";
\ 在許多程式語言解釋為跳脫字元。
\n 在許多程式語言解釋為換行字元。
quoted裡的元件基本上會當作字串處理,包含實際字串和便數字串。所以 print "$string"可以,但是如果是print "$strint++\n"就不行。要使用print $sting++."\n"
($a , $b) = (1,2);
$c = $a + $b ;
print "$a\n";
print "$b\n";
result: 1 2
print "$c\n";
result: 3
notice:
print "$a + $b \n";
result: 1 + 2
$str = "Hello Wrold!\n";
print "$str\n";
result: Hello World!
my $name = 'Foo';
print 'Hello $name, how are you?\n';
Single quoted result: Hello $name, how are you?\n
print "Hello $name, how are you?\n";
Double quoted result: Hello Foo, how are you?
notice:
$name = 'Foo'; the same as $name = "Foo";
\ 在許多程式語言解釋為跳脫字元。
\n 在許多程式語言解釋為換行字元。
quoted裡的元件基本上會當作字串處理,包含實際字串和便數字串。所以 print "$string"可以,但是如果是print "$strint++\n"就不行。要使用print $sting++."\n"
perl basics
1. 由shebang (#!) 開始
#!/usr/bin/perl
類 Unix 作業系統的程式載入器會分析 Shebang 後的內容,將這些內容作為直譯器指令,並呼叫該指令,並將載有 Shebang 的檔案路徑作為該直譯器的參數。
2. 以browser呼叫執行傳回最少要加上
print "Content-Type: text/html; charset=\"UTF-8\"\n\n";
3. exit;
example code:
#!/usr/bin/perl
print "Content-Type: text/html; charset=\"UTF-8\"\n\n";
print "Hello World!\n";
exit;
result:
Hello World !
#!/usr/bin/perl
類 Unix 作業系統的程式載入器會分析 Shebang 後的內容,將這些內容作為直譯器指令,並呼叫該指令,並將載有 Shebang 的檔案路徑作為該直譯器的參數。
2. 以browser呼叫執行傳回最少要加上
print "Content-Type: text/html; charset=\"UTF-8\"\n\n";
3. exit;
example code:
#!/usr/bin/perl
print "Content-Type: text/html; charset=\"UTF-8\"\n\n";
print "Hello World!\n";
exit;
result:
Hello World !
2016年9月16日 星期五
mysql to mariaDB(before version 10)
1. 安裝 MariaDB。你的MySQL所有工具,連接程式都可以如常運作。你也不需要匯出和匯入資料。
格式與檔案名稱都是相同的。
2. 所有客戶端的API、協議和結構都是相同的;
3. 所有文件件名、二進製文件、路徑、端口、套接字等……全都是一樣的;
4. 所有的MySQL與其他語言(PHP、Perl、Python、Java、.NET、MyODBC、Rub、MySQL C..)
的連接文件無需任何改動,在MariaDB就可工作;
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕鬆成為MySQL的代替品。
在存儲引擎方面,10.0.9版起使用XtraDB(名稱代號為Aria)來代替MySQL的InnoDB。
版本方面,MariaDB直到5.5版本,均依照MySQL的版本。
因此,使用MariaDB5.5的人會從MySQL 5.5中了解到MariaDB的所有功能。
從2012年11月12日起發布的10.0.0版開始,不再依照MySQL的版號。
10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發的新功能。
相對於最新的MySQL5.6,MariaDB在性能、功能、管理、NoSQL擴展方面包含了更豐富的特性。
比如微秒的支持、線程池、子查詢優化、組提交、進度報告等。
格式與檔案名稱都是相同的。
2. 所有客戶端的API、協議和結構都是相同的;
3. 所有文件件名、二進製文件、路徑、端口、套接字等……全都是一樣的;
4. 所有的MySQL與其他語言(PHP、Perl、Python、Java、.NET、MyODBC、Rub、MySQL C..)
的連接文件無需任何改動,在MariaDB就可工作;
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕鬆成為MySQL的代替品。
在存儲引擎方面,10.0.9版起使用XtraDB(名稱代號為Aria)來代替MySQL的InnoDB。
版本方面,MariaDB直到5.5版本,均依照MySQL的版本。
因此,使用MariaDB5.5的人會從MySQL 5.5中了解到MariaDB的所有功能。
從2012年11月12日起發布的10.0.0版開始,不再依照MySQL的版號。
10.0.x版以5.5版為基礎,加上移植自MySQL 5.6版的功能和自行開發的新功能。
相對於最新的MySQL5.6,MariaDB在性能、功能、管理、NoSQL擴展方面包含了更豐富的特性。
比如微秒的支持、線程池、子查詢優化、組提交、進度報告等。
MariaDB 權限管理
概念:
1. 使用指令的權限,使用者對所有資料庫使用指令的權限。
grant select on *.* to 'user'@'host';
資料指令權限有select,insert,update,delete,file
結構指令權限create,alter,index,drop,create temporary tables,show view,create routine,alter routine,excute,create view,event,trigger
系統管理指令權限 grant,super,process,reload,shut down,show database,lock tables,create user
2. 對資料庫的權限,可以專為單一資料庫開放所有權限,但其他資料庫只有select的權限。
grant all privileges on database.* to 'user'@'host';
建立使用者:
create user 'user'@'host' identified by 'password';
顯示使用者:
select user,host from mysql.user;
顯示使用者權限:
show grants for 'user@'host';
修改使用者密碼:
set password for 'user'@'host' = password('password');
刪除使用者:
delete from mysql.user where user='user' and host='host';
sysV vs systemd
開機過程
Runlevel(sysV): 開機時選擇runlevel(在inittab設定). 不同的runlevel會執行不同的rc.d裏的service的link. 實際的啟動script在init.d裡面
Systemd: 一堆 unit 項目集合變成一個 group 稱為 target. target 可想成是runlevel.disabled的service 在/usr/lib/systemd/system/裡,enabled的service link 到 /etc/systemd/system
Runlevel(sysV): 開機時選擇runlevel(在inittab設定). 不同的runlevel會執行不同的rc.d裏的service的link. 實際的啟動script在init.d裡面
Systemd: 一堆 unit 項目集合變成一個 group 稱為 target. target 可想成是runlevel.disabled的service 在/usr/lib/systemd/system/裡,enabled的service link 到 /etc/systemd/system
管理
sysV: init, chkconfig, service.........
systemd: systemctl(stand for: system ConTorL)
其他比較由於 systemd 可以自訂服務相依性的檢查,因此如果 B 服務是架構在 A 服務上面啟動的,那當你在沒有啟動 A 服務的情況下僅手動啟動 B 服務時, systemd 會自動幫你啟動 A 服務。
常用指令
(systemctl 命令 服務.service)
命令: enable(開機自動執行),disable,status,start,restart,stop
ex: systemctl status httpd.service
列出有哪些 target(runlevel): systemctl list-units --type target
列出系統target(runlevel): systemctl get-default
切換 current target: systemctl isolate multi-user.target (runlevel 3)
切換 current target: systemctl isolate graphical.target (runlevel 5)
切換開機target: systemctl set-default multi-user.target (runlevel 3)
切換開機target: systemctl set-default graphical.target (runlevel 5)
2016年9月6日 星期二
AR, VR, MR
1. 顯示器,沒有把自己本身當參數加進去處理
例如:電影,電視
2. AR(Augmented Reality) 擴增實境
把自己本身當參數處理你看到的影像.
例如算出你處於不同位置所看到的影像不同,像是Pokemon Go
3. VR(Virtual Reality) 虛擬實境
把自己本身當參數處理你看到的影像.加上盡量給你感官。
Oculus Rift
HTC Vive
Sony PS VR
更簡單型:Google Cardboard, 裝入手機即可
4. MR(Mixed Reality)混合實境
把其他人事物也當作參數處理看到的影像。
例如虛擬會議。
windows holograpic
技術:
加強影像處理卡
全景影像,3D
感官設備
例如:電影,電視
2. AR(Augmented Reality) 擴增實境
把自己本身當參數處理你看到的影像.
例如算出你處於不同位置所看到的影像不同,像是Pokemon Go
3. VR(Virtual Reality) 虛擬實境
把自己本身當參數處理你看到的影像.加上盡量給你感官。
Oculus Rift
HTC Vive
Sony PS VR
更簡單型:Google Cardboard, 裝入手機即可
4. MR(Mixed Reality)混合實境
把其他人事物也當作參數處理看到的影像。
例如虛擬會議。
windows holograpic
技術:
加強影像處理卡
全景影像,3D
感官設備
同軸電纜(Coaxial Cable)
一般同軸電纜品名記號說明:
3C-2W
5C-2V
5C-FB
第一項之數字:表示外部導體之約計外徑(mm)
第二項之文字:"D"表示特性阻抗 50 歐姆
"C"表示特性阻抗 75 歐姆
第三項之文字:"2"表示PE充實絕緣型。
"F"表示發泡PE絕緣型。
第四項之文字:"V"表示外部導體為一層編織後施以PVC外被覆。
"W"表示外部導體為二層編織後施以PVC外被覆。
"B"表示外部導體為兩面鋁箔麥拉帶縱包再加上鍍錫軟銅線編織
第四台線路 到目前為止,他們的標準配線一定是5C cable ,而且是國外的
台灣做高頻線的KNOW HOW ,規模 還是比國外差很多
3C-2W
5C-2V
5C-FB
第一項之數字:表示外部導體之約計外徑(mm)
第二項之文字:"D"表示特性阻抗 50 歐姆
"C"表示特性阻抗 75 歐姆
第三項之文字:"2"表示PE充實絕緣型。
"F"表示發泡PE絕緣型。
第四項之文字:"V"表示外部導體為一層編織後施以PVC外被覆。
"W"表示外部導體為二層編織後施以PVC外被覆。
"B"表示外部導體為兩面鋁箔麥拉帶縱包再加上鍍錫軟銅線編織
第四台線路 到目前為止,他們的標準配線一定是5C cable ,而且是國外的
台灣做高頻線的KNOW HOW ,規模 還是比國外差很多
2016年9月5日 星期一
otg(usb on the go)
conception:
computer---device(mobile) through usb cable
mobile become server
mobile---device(usb drive)
otg add a line to tell mobile is device or server
傳統 usb port 出pin 有
1. vbus (5v)
2. GND
3. D+
4. D-
otg 只有 micro接口, total出5pin
1. vbus
2. GND
3. D+
4. D-
5. ID
線材裡面都是跑4條線 只差在接頭,
OTG 線一端有一根PIN多接了個GND,
讓機器分辨誰是主機、誰是Device,故單以外觀是無法分辨的。
computer---device(mobile) through usb cable
mobile become server
mobile---device(usb drive)
otg add a line to tell mobile is device or server
傳統 usb port 出pin 有
1. vbus (5v)
2. GND
3. D+
4. D-
otg 只有 micro接口, total出5pin
1. vbus
2. GND
3. D+
4. D-
5. ID
線材裡面都是跑4條線 只差在接頭,
OTG 線一端有一根PIN多接了個GND,
讓機器分辨誰是主機、誰是Device,故單以外觀是無法分辨的。
2016年9月4日 星期日
半導體技術(Semiconductor Technology)
晶圓,晶圓代工:
(台積電,GlobalFoundries,聯電,三星電子,中芯國際,力晶、世界先進、上海華虹宏力、韓國東部(Dangbu)、以色列Tower Jazz。
晶片線路製造技術,IC 設計公司:
(聯發科, 高通, Intel, 安謀(ARM))
日本晶圓切割機大廠:
Disco
封裝製造技術,數個晶粒封裝在同一顆IC內,稱為多重晶片構裝(Multi Chip Package)
IC 設計廠十分依賴工程師的智慧,這裡所述的每個步驟都有其專門的知識,皆可獨立成多門專業的課程,像是撰寫硬體描述語言就不單純的只需要熟悉程式語言,還需要瞭解邏輯電路是如何運作、如何將所需的演算法轉換成程式、合成軟體是如何將程式轉換成邏輯閘等問題。
(台積電,GlobalFoundries,聯電,三星電子,中芯國際,力晶、世界先進、上海華虹宏力、韓國東部(Dangbu)、以色列Tower Jazz。
晶片線路製造技術,IC 設計公司:
(聯發科, 高通, Intel, 安謀(ARM))
日本晶圓切割機大廠:
Disco
封裝製造技術,數個晶粒封裝在同一顆IC內,稱為多重晶片構裝(Multi Chip Package)
IC 設計廠十分依賴工程師的智慧,這裡所述的每個步驟都有其專門的知識,皆可獨立成多門專業的課程,像是撰寫硬體描述語言就不單純的只需要熟悉程式語言,還需要瞭解邏輯電路是如何運作、如何將所需的演算法轉換成程式、合成軟體是如何將程式轉換成邏輯閘等問題。
P2P
P2P
定義:
對等網路(peer-to-peer),一種網路技術和網路拓撲結構。
應用:
1. 直接的:2電腦對接
2. 防火牆後的p2p:
Client 連結到p2p server ,另一個client也連結到同一個p2p server .目的是讓所有的防火墻後的設備可以連結。
例子1 : 一些家裏網路攝影機不用複雜的設定,可以透過網路攝影機公司的server讓遠端連線。
例子2 : p2p 下載
例子2 : NAS, quickconnect
例子2 : NAS, quickconnect
缺點 p2p server 可以擷取資料。
例如Dropbox幫我們同步各裝置的資料,其實它也有一份我們的資料。
訂閱:
文章 (Atom)