0%
QR code
發表於
更新於
文章字數:
4k
所需閱讀時間 ≈
7 分鐘
QR code
Introduction
二維碼另一個名稱是QR Code(Quick Response Code)
與傳統條形碼 (bar code) 相比,可以儲存更多的資訊。二維碼本質上是個密碼演算法,基本知識總結如下。
首先,二維碼存在 40 種尺寸,在官方文件中,尺寸又被命名為 Version。尺寸與 Version 存線上性關係:Version 1 是 21×21 的矩陣,Version 2 是 25×25 的矩陣,每增加一個 Version,尺寸都會增加 4,故尺寸 Size 與 Version 的線性關係為:
$$Size=(Version−1)×4$$
Version 的最大值是 40,故尺寸最大值是(40-1)*4+21 = 177,即 177 x 177 的矩陣。
QR Code的4個容錯等級:
- L(低):可修正7%的字碼。
- M(中):可修正15%的字碼。
- Q(中高):可修正25%的字碼。
- H(高):可修正30%的字碼。
C++ tuple
發表於
更新於
文章字數:
1.5k
所需閱讀時間 ≈
3 分鐘
C Pointer
發表於
更新於
文章字數:
113
所需閱讀時間 ≈
1 分鐘
Git Command
發表於
更新於
文章字數:
1.9k
所需閱讀時間 ≈
3 分鐘
Git Command
steps
push
- gti init
(new a .git file) - git status
(see what current state of our project) - git add [file]
(add files to to the staging area by using git add) - git commit -m [commit name]
(put commit into ready status) - git log
(can log like a journal that remember all the changes we have committed so far) - git remote add origin [repository URL]
(before pushing, we need to add a remote repository) - git push -u origin master
(push commit)
改變歷史的 50 個物理學實驗
發表於
更新於
文章字數:
1.7k
所需閱讀時間 ≈
3 分鐘
Design Pattern
發表於
更新於
文章字數:
5.5k
所需閱讀時間 ≈
10 分鐘
各種商數 Quotient
發表於
更新於
文章字數:
493
所需閱讀時間 ≈
1 分鐘
js-string-search
發表於
更新於
文章字數:
2k
所需閱讀時間 ≈
4 分鐘
Javascript String Search
- 在 javascript 中 string 的 substring 有三個
search
、includes
、match
- 看起來功能相似,參數和回傳函數還是有差
search
- str.search(regexp)
- 參數是 regular expression
- 如果不是,則會自動生成 RegExp 物件
- 回傳搜尋到的 index,如果沒有搜尋到則回傳 -1
1
2
3
4
5let str = "hey JudE"
let re = /[A-Z]/g
let reDot = /[.]/g
console.log(str.search(re)) // returns 4, which is the index of the first capital letter "J"
console.log(str.search(reDot)) // returns -1 cannot find '.' dot punctuation
- 參數是 regular expression
includes
str.includes(searchString[, position])
str.match(regexp)
參數是 regular expression
- 如果不是,則會自動生成 RegExp 物件
回傳的是一組 array,每一個元素都是符合的字串,如果沒有符合的結果,則是回傳 null
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20var str = "Nothing will come of nothing.";
str.match(); // returns [""]
var str = 'For more information, see Chapter 3.4.5.1';
var re = /see (chapter \d+(\.\d)*)/i;
var found = str.match(re);
console.log(found);
// logs [ 'see Chapter 3.4.5.1',
// 'Chapter 3.4.5.1',
// '.1',
// index: 22,
// input: 'For more information, see Chapter 3.4.5.1' ]
// 'see Chapter 3.4.5.1' is the whole match.
// 'Chapter 3.4.5.1' was captured by '(chapter \d+(\.\d)*)'.
// '.1' was the last value captured by '(\.\d)'.
// The 'index' property (22) is the zero-based index of the whole match.
// The 'input' property is the original string that was parsed.
Others
- str.indexOf(searchValue [, fromIndex])
- 參數是字串,以及從第幾個開始
- 回傳搜尋到的 index,如果沒有搜尋到則回傳 -1
1
2
3
4
5'Blue Whale'.indexOf('Blue') // returns 0
'Blue Whale'.indexOf('Blute') // returns -1
'Blue Whale'.indexOf('Whale', 0) // returns 5
'Blue Whale'.indexOf('Whale', 5) // returns 5
'Blue Whale'.indexOf('Whale', 7) // returns -1