Firebase 心得(Introduction)

官方文件

此文使用版本 : 3.1.0

Firebase Doc

介紹

Firebase 支援平台

  • IOS
  • Android
  • Web

支援功能

開發功能 IOS Android Web
Analytics O O X
Cloud Messaging O O O
Authentication O O O
Realtime Database O O O
Storage O O O
Hosting X X O
Remote Config O O X
Test Lab X O X
Crash Reporting O O X
社群功能 IOS Android Web
Notifications O O X
App Indexing O O X
Dynamic Links O O X
Invites O O X
AdWords O O X
廣告功能 IOS Android Web
AdMob O O X

Nand Flash

介紹

2016-07-06_111757.png
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Flash Device    = N Block
Blocl = N Page
Page = N Byte + OOB

Nand Flash
+-------------------------------------+
| B1 | B2 | ... | B16 |
| | | | |
+-------------------------------------+

+----+
| B1 | => N Page + OOB
| |
+----+

Page
大小有 512, 2048, 4096, 8192 (bytes),常見的為 2048 (bytes)
page 容量 512 bytes 的稱 small page,大於等2k bytes 都稱為large page

Spare or OOB (out of boundary)
每一個 page 在實體的結構中除了 2k bytes的使用空間,還會有 64 bytes 額外的容量
供hw/sw儲存一些額外的資訊,通常會用來儲存ecc的data,來效正nand flash使用久後會有bit不能使用的問題

Block
nand flash chip 寫入的最小單位, 每 64 page 即為一個block
因為 page size 會有不同,block size 也就不同
一顆chip裡有多少block,是依nand flash的大小而定,但通常是 2 的冪次方。

Read/Write operation
nand flash 讀寫方式異於一般的磁性儲性裝置。因為結構上的問題
如果要針對特定的 page 寫入,只能把資料寫由1 -> 0,
如果要0->1 那只能針對整個 block (64 pages)做動作,此動作稱為 erase,而寫入page的動作稱為 program,
一般 nand chip 的資料都會標明erase/program的時間
以 Micro MT29F2G08AABWP 為例,erase/program的時間分別為(2ms/300us)


# write -> Block
# read -> Page

Grammar For New TOEIC(片語動詞)

可分離片語動詞

V + 介副詞(Particle) + O = V + O + 介副詞

  1. 片語動詞通常用在口語中,可以替換相同意思的動詞
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    discover  = find out 
    return = go back
    continue = go on
    invent = make up
    refuse = turn down
    abandon = give up
    explode = go off
    omit = leave out
    establish = set up
    calculate = work out

2.可分離片語動詞

1
2
3
4
5
6
7
8
9
10
11
12
13
add up          把...加起來
back up 備份
break down 分解、故障
bring up 提到、養育
buy out 買股份
buy up 買進
call off 取消
call up 打電話給誰
carry out 執行
clean up 清理
close down 停業
cross out 刪去
cut off 中斷

設計模式 Swift(簡單工廠)

閱讀大話設計模式心得,使用 Swift Ver. 3.0 (Jun 6, 2016)

Swift API Doc

簡單計算機程式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let numA        = 10
let numB = 20
var resultNum = 0
let strOperate = "+"

switch(strOperate){
case "+":
resultNum = numA + numB
case "-":
resultNum = numA - numB
case "*":
resultNum = numA * numB
case "/":
if numB != 0 {
resultNum = numA / numB
} else {
print("Error")
}
default:
print("default")
}
print("Result = \(resultNum)")