Amo Chen

Python multiprocessing 模組進階說明與範例

先前 Python multiprocessing 模組簡單說明與範例 一文簡述 multiprocessing 模組中 Pool, Manager 的使用方法,也講述如何在多個 Processes 之間共享資料,不過仍有許多關於 multiprocessing 中的功能尚未詳述,例如 Process 類別(class), Queue, Pipe 等等,這些功能不僅重要也很實用,是邁向 Python 高階功能的必學項目,因此不可忽視。

本文將透過實際範例了解更多關於 multiprocessing 模組中實用的功能。

Posted on  May 1, 2021  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 11 min read

jq 實戰教學

隨著 JSON 格式作為資料交換格式大行其道,使用工具對 JSON 資料進行操作也逐漸成為家常便飯,各種工具中, jq 可說是一套十分易於操作的 JSON 操作工具。

本文將透過實際資料學習如何使用 jq 。

Posted on  Mar 27, 2021  in  Unix-like 命令列教學  by  Amo Chen  ‐ 14 min read

用 Docker 架設 Elasticsearch 實驗環境

Elasticsearch 已經是現今開發者欲實現搜尋功能的一條捷徑,其易用的框架以及便利的 API(Application Programming Interface) 都十分易於開發與整合,所以許多網頁或 APP 應用中的搜尋功能其實背後都使用 Elasticsearch 進行建構,因此學會如何使用 Elasticsearch 也是相當值回票價的一件事。

本文將利用 Docker 建立 Elasticsearch 的實驗環境,給予初學者一個進入 Elasticsearch 世界的方便之門。

Posted on  Feb 21, 2021  in  用 Docker 架設服務  by  Amo Chen  ‐ 5 min read

Python 模組介紹 - bisect

談到插入(insert)元素到已排序串列(list) ,最暴力的方法就是每次插入元素後直接排序:

>>> a = [1, 2, 3, 4]
>>> a.insert(0, 5)
>>> a
[5, 1, 2, 3, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

不過隨著串列越來越長,每次插入元素後再進行排序的方式,將會越來越慢,甚至造成大量不必要的運算,這時可以利用 Python 內建模組 bisect ,透過二元搜尋的方式幫我們插入元素到串列之中,如此一來該串列就不需要在新增元素後進行排序。

p.s bisect 只能運用在已排序過的串列(list)

Posted on  Feb 7, 2021  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 3 min read

Docker MongoDB 初體驗

MongoDB 是知名的 NoSQL 資料庫,也是現今後端資料庫很常見的解決方案之一。而 MEAN/MERN 架構中的 M 也指的是 MongoDB, 可見其重要程度不言而喻。

p.s. MEAN (MongoDB, express.js, Angular, Node.js)

p.s. MERN (MongoDB, express.js, React, Node.js)

且隨著現代應用的演化,同時使用傳統關聯式資料庫以及 NoSQL 資料庫也十分常見,如果想體驗/練習 NoSQL 資料庫,不妨就透過 Docker 實際操作看看。

Posted on  Jan 10, 2021  in  用 Docker 架設服務  by  Amo Chen  ‐ 3 min read