出社會以前,完全沒有在看課外讀物的我,是如何養成現在每天都會閱讀的習慣, 雖然閱讀的時間不多,大約每天30-60分鐘,但跟以前的我相比,已經是巨大的進步了~ 這篇文章將依據《原子習慣》所提出的框架, 提示 -> 渴望 -> 回應 -> 獎賞,來分析我閱讀習慣的各個面向,算是原子習慣的應用案例~ 如果沒看過這本書的也可以看看我之前寫的文章: [讀書筆記] 原子習慣: 細微...
[System Design] 淺談Database Replication,有何優缺點、做法及何處可見?
什麼是database replication? 顧名思義就是將一份資料,複製成多份,並把它放到不同的機器上, 好像也沒什麼好說的🤪,接著會看看為什麼要做複製,它會帶來什麼好處及壞處, 再看看要如何做到replication,最後看看在RDBMS、NoSQL或是你自己的系統,是怎麼應用這些概念的。 為何要replication 資料備份 把一份資料變成多份放到不同的地方,最明顯的好處就是備...
Node.js: 7 cryptography concepts using ctypto module
這篇要介紹nodejs中的crypto module的用法,如何使用這個module來實現密碼學中常見的概念, 包含hash、salt、password hashing、 MAC(message authentication code)、 Symmetric Encryption及Asymmetric Encryption 及Digital Signature。 Hash 可以使用指令...
[System Design] 淺談Database Partition. Centralized and Distributed.
什麼是partition,vertical跟horizontal partition有何不同? 阿sharding又是什麼? 這些跟NoSQL有關嗎? 在傳統的RDBMS,像是MySQL或PostgreSQL中,這些概念也有用嗎? 這篇文章將討論上述的問題,看看partition在RDBMS及NoSQL中的實踐應用,以及各種優缺點。 什麼是Partition Partition原意就是分拆...
什麼是Hash Function? 有什麼特性及用途?
在之前一篇文章: 密碼學是什麼? 有何用途以及要解決什麼樣的問題? 中討論過密碼學的出現是為了解決什麼問題,這篇文章要討論密碼學裡一個重要的概念, Hash Function,其與對稱式加密跟非對稱式加密三者共同構成密碼學裡的核心。 賭博遊戲 再開始正式的內容之前,先來想個有趣的問題: 賭博中如何防止莊家出老千? 比如說我們現在玩骰子遊戲,賭大小,1-3是小,4-6是大, 賭博最怕莊家出老...
[讀書筆記] 原子習慣: 細微改變帶來巨大成就的實證法則
《原子習慣》 這本書收首先帶我們了解到習慣是什麼,它就是我們平常不太會去注意到, 卻是很大地影響我們人生的一件事,更清楚地認識了習慣及其重要之後, 作者將習慣拆解成四個階段,提出一個框架,好讓我們可以一步一步地培養好習慣、斷除壞習慣。 習慣是什麼 習慣佔據你人生的八、九成,試想一下每天醒來,躺在床上滑一下手機, 走去浴室刷牙洗臉,要不要吃早餐,早餐要吃什麼,通勤去上班的路上在做什麼, ...
台北捷運在疫情期間各站的進出人數
COVID-19爆發以來,台灣人民的生活跟世界其他國家相比,受到的影響相對較小, 以下將分享台北捷運各站,在疫情期間(2020-01 ~ 2021-09),每個月的進出站人數資料數據。 資料來源 臺北捷運各站分時進出量統計 上述連結中的原始資料中,有每個小時從A站進到B站出的人數,每月近一千萬筆的資料, 在下將其整理為每月某站的總進出站人數 各站進出人數 以下橫軸時間為2020-01 ...
Nodejs: 如何逐行讀取檔案,或使用Unix pipe與其他process互動
這篇文章將介紹如何使用Nodejs的readline module來一行一行地讀取檔案, 接著既然都可以從檔案中逐行讀取了,那也可以從standard input中逐行讀取吧, 如此一來,就可以跟其他linux command一樣,一起使用pipe!像下面這樣: cat words.txt | node wc.js readline createInterface: 首...
密碼學是什麼? 有何用途以及要解決什麼樣的問題?
如何在有惡意的第三方的情況下安全的通訊 密碼學要解決的問題大概可以以上面這一句話來概括,這篇文章主要的目的, 就是要來深入探討這句話,通訊的本質是什麼,會面臨什麼問題, 以及什麼樣才是安全的通訊,要達到哪些目標才算安全呢? 通訊 (communication) 什麼是通訊 就是將信息(message)由一方傳達到另一方,比如說對話、傳小紙條、寫信或Email、傳LINE、 通...
[Golang] 如何逐行讀取檔案,或使用shell pipe到go process
這篇將示範如何用go的bufio,開啟檔案並且一行一行地讀取資料, 最後示範直接用unix pipe將資料pipe給我們的go程式,做到像下面這樣的事: cat words.txt | go run ./wc.go bufio.Scanner 我們將使用bufio.Scanner來一行一行地讀取檔案內容,先看看會用到的function們的signature: func NewSca...