Amo Chen

用 Python 學網路程式設計重要概念 — 從 I/O 多工再到多執行緒以及 Thread Pool

在「用 Python 學網路程式設計重要概念,從單執行緒到 I/O 多工(I/O multiplexing)」 1 文中,我們利用多個 Python 範例程式學會 I/O 多工的 3 種 syscall, 分別是 select() , poll() 以及 epoll() ,藉由 I/O 多工讓程式即使只有單執行緒也能同時處理多個連線。

本文將從 I/O 多工開始,進一步延伸學習多執行緒以及 Thread Pool 這 2 個經典的網路程式設計架構。

Posted on  Jun 14, 2024  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 8 min read

淺談 UTF-8 編碼方式

很多人都知道 Python 3 開始預設使用 UTF-8 編碼(encoding),但如果問你 UTF-8 編碼是怎麼運作的?應該很多人會說不出個所以然。

例如,為什麼在 Python 使用以下程式碼會得到長度為 16:

>>> len('生日快樂🎂'.encode())

這背後的原因就跟 UTF-8 有關!

Posted on  Jun 13, 2024  in  Encoding  by  Amo Chen  ‐ 3 min read

好文分享 — Python's many command-line utilities

我知道 python 有模組可以用 -m 參數直接變成命令列工具使用,但我是認真沒想到 Python 有「非常多」模組都可以使用 -m 參數,甚至還有彩蛋! p.s. 解釋一下 -m 的作用, -m 會

Posted on  Jun 12, 2024  by  Amo Chen  ‐ 1 min read

如何使用 Claude 打造 AI Agent

相信大家都知道 Apple 推出 Apple Intelligence, 這件事除了宣告行動裝置與 AI 整合應用大戰開打之外,我相信給相關軟體應用開發者所帶來的啟示是—— 「不會開發 AI 沒關係,但至

Posted on  Jun 11, 2024  by  Amo Chen  ‐ 1 min read

具體說明 HTTP 標頭(header) ETag 是如何運作的

談到瀏覽器的快取,最眾所皆知的是 Cache-Control 。

但其實還有 1 個也經常被提到,那就是 ETag 。

可真要解釋 ETag 具體在做什麼、是如何運作的,以及為什麼需要 ETag, 卻又很難講得清楚(偏偏面試又會被問)。

本文將從實際的範例出發,帶你徹底了解 ETag 並提供 Python 程式碼,讓你在家也能玩!

Posted on  Jun 9, 2024  in  HTTP headers  by  Amo Chen  ‐ 5 min read

網頁過場(transitions)框架推薦 — barba.js

有時候網頁所帶來質感是由一些細節所決定,例如從頁面 A 到頁面 B 時,可以加入過場的特效,譬如淡出、淡入、翻頁、滑入等效果,使用者就會留下網頁生動

Posted on  Jun 8, 2024  by  Amo Chen  ‐ 1 min read

Python 模組教學 - selectors

Python 是 1 個追求易用、易學、 battery included 的程式語言, Python 有一些模組會把既有的模組包裝成高階(high-level)模組,除了更易於使用之外,因為一些實作細節或最佳實務也都幫忙打點好了,所以能讓開發者寫出更優雅、簡潔的程式碼。

本文將介紹 selectors 模組,該模組是基於 select 模組的高階模組,也是做 I/O 多工會使用的模組。

Posted on  Jun 5, 2024  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 5 min read