Programming
Python Coroutine Asyncio
·1102 字·3 分鐘
在出現 asyncio 前,
當一隻 Python 程式有很多需要並行執行的 task,
想要提升程式效能,
只能選用 multiprocessing 或 threading;
Python 3.4 之後又多出了 asyncio 的選擇。
asyncio 可以用來撰寫 coroutines,
並使用 event loop 並行執行 coroutines,
減少程式不必要的等待時間以提升效能。
Pipenv Notes
·660 字·2 分鐘
Why Pipenv # 當有很多 Python project 要維護,
不同的 project 有可能使用相同的 python libraries 的不同版本,
不使用 virtual environment 而將所有的 python modules 都裝在自己的機器上就會造成版本衝突。
過去使用 virtualenv + requirement.txt 的機制可以在不同的 project 使用同一個套件的不同版本,
也能夠讓新加入的開發者或 production 環境可以快速安裝 project 需要的套件,
Deep Copy and Shallow Copy
·192 字·1 分鐘
Shallow Copy # 複製越少越好,
Shallow copy 出來的新的 structure 擁有跟舊的 structure 相同的結構,
並一起共享 elements 的記憶體位置。
C++ STL Containers 比較 - array, vector, deque, list, forward_list
·453 字·1 分鐘
Array # 固定大小的連續記憶體空間所構成
優缺點 # 不能像其他 C++ container 那樣動態改變儲存空間的大小 random access 很有效率 (O(1)) Vector # 可以動態改變儲存空間大小的 array
Github Pages and Jekyll - sitemap
·343 字·1 分鐘
更新 # 已從 Jekyll migrate 到 Hugo,
這篇方法僅適用 Jekyll。
Sitemap # sitemap 基本上就一個 .xml 檔案,
裡面包含了網站有哪些頁面連結,
讓搜尋引擎去爬,
搜尋引擎爬完以後就可以建立 index,
之後有人在搜尋引擎打關鍵字才搜尋的到。
Jekyll-sitemap # Jekyll 有一個 plugin 叫做 jekyll-stiemap,
可以在每次 build 網站之後自動產生 sitemap。
C/C++ - const 加上 pointer 和 reference 的用法整理
·659 字·2 分鐘
const 和一般變數 # 有兩種寫法
const TYPE NAME = VALUE; // more common TYPE const NAME = VAULE; 意思都一樣,
就是這個變數不能再被指定別的值。
舉個例:
Difference between Concurrent Processing and Parallel Processing
·319 字·1 分鐘
Concurrent Processing 和 Parallel Processing 指的都是 CPU 在 一段時間內執行多個 process,
但兩者在概念上有些差異;
根據 The Art of Concurrency ,
Concurrent 指的是