Home
HoMuChen
Cancel

[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...

104人力網站爬蟲: 如何只用shell script來抓取資料

想要抓取網路上的資料,大家可能都會想到python爬蟲,但有時並不需要那麼麻煩, linux command line tool就有許多好用的工具, 今天以104人力網站的為例,示範如何只使用shell script,就可以開始抓取資料! 前言 這邊假設大家已經有網路爬蟲的基本概念了,一般大家寫爬蟲最多人用的就是python, 流程就是到目標網站上操作,並且一邊觀察chrome dev t...