https://www.gravatar.com/avatar/206912d6900c65386f24516df605c206?s=240&d=mp

Kourtney's Space

Multiprocessing, Multithreading and Asyncio in Python Part 1 - Basic Concept

在 Python 3.4 之後出現了 Asyncio 可以在特定情境下提升效能,
結合之前已經有的 Multiprocessing 和 Multithreading,
我整理了一下這三項技術適合的原理、差異和使用情境做了幾篇紀錄。
這一篇先簡單介紹三者的基本概念和適用情境。

Sync Obsidian / Joplin Data Across Multiple Device with Synology WebDAV

原先我使用的筆記軟體是 Notion,
功能豐富且介面美觀,
但幾年前 Notion 出現了隱私權爭議,
被指控偷看某公司放在 Notion 的內容,
甚至進一步提出合作;
就改用了一陣子 Joplin
但最後還是轉到了擁有大量外掛及社群支援,
而且可以高度客製化的 Obsidian

Managing Pre-existing Global NPM Packages After Installing NVM

今天遇到一個問題,

安裝過 nvm 後安裝 global package 的路徑就被改變了,

導致想要移除之前安裝過的 global package 時沒辦法直接用 npm uninstall -g 移除。

怎麼發現這件事的呢?

很久以前我在 global 裝過一個 package 可以直接在 terminal 呼叫 command 執行,

Pyenv Notes

pyenv 的功能和使用的原因

pyenv 是用來在系統裡安裝各種不同版本的 python,

並能夠方便的切換 python 版本的工具。

當同時有不同 python 版本的專案需要開發或維護時,

就會需要使用 pyenv 來協助切換 python 的版本。

Pipenv Notes

Why Pipenv

當有很多 Python project 要維護,
不同的 project 有可能使用相同的 python libraries 的不同版本,
不使用 virtual environment 而將所有的 python modules 都裝在自己的機器上就會造成版本衝突。

過去使用 virtualenv + requirement.txt 的機制可以在不同的 project 使用同一個套件的不同版本,
也能夠讓新加入的開發者或 production 環境可以快速安裝 project 需要的套件,