MyApollo

MyApollo

輕鬆學習程式語言和最新技術趨勢,踏上從小工到大師之旅!

60 秒新知

終端機(Terminal)專用的 AI 指令工具介紹 — AiTerm

AiTerm 是 1 個有趣的 AI 指令工具,它結合 LLM 與 shell 的功能,讓生活離不開 command-line 的大家可以自然語言的方式執行指令,再也不用背指令與參數! But! AiTerm 是相對新的工具,仍處

Posted on  Apr 21, 2024  by  Amo Chen  ‐ 1 min read

最新文章

橫練金剛!將 Go 程式碼編譯成 WebAssembly — 以縮圖程式為例

近年來不斷地看到一些公司或服務採用 WebAssembly 這項技術,包含 Adobe, Microsoft, Google, Figma 等等,使我也對 WebAssembly 產生一點興趣,不過一直都沒有特別花時間研究,只知道 WebAssembly 是 1 種類似組合語言而且可以在瀏覽器中執行的低階語言,相較於 JavaScript 而言,更接近硬體層級,因此效率也更好一些。

直到最近 side project 有個很實際的需求作為契機,我才藉機會研究 WebAssembly 並體驗一下用 WebAssembly 打造應用的感覺。

現代很多語言都支援將程式碼編譯為 WebAssembly ,其中比較知名的是 Rust 程式語言,不過本文將以 Go / Golang 作為教學示範。

Posted on  Apr 26, 2024  in  Go 程式設計 - 高階  by  Amo Chen  ‐ 9 min read

適度用 Python 海象運算子提高程式碼可讀性與簡潔

Python 3.8 推出 1 個新的運算子 — Walrus Operator, 又稱海象運算子,其運算符號為 :=

Python 社群對海象運算子有一些爭議,主要是:

  1. 海象這個名稱不夠明白、直覺,無法讓人直接從名稱了解其用途
  2. 無法向下相容,如果你是套件開發者,用了海象運算子就會有 3.8 以前的相容問題要解決
  3. :== 符號太相似,難以快速識別

但無論其爭議為何,海象運算子只用 1 個新的符號,就能使程式碼變得簡潔之外,還能同時滿足 Python 使用者的習慣,長遠來看其實是利大於弊。

譬如下列程式碼,在使用海象運算子之後,其實只需要 2 行即可:

x = input('> ')
while x:
    print(x)
    x = input('> ')

因此,學會適度使用海象運算子是可以帶來好處的!

本文將介紹海象運算子與幾個適合使用海象運算子的場景。

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

熱門文章

零經驗也可的 PySpark 教學 - 初體驗

Apache Spark 是現今處理巨量資料(large-scale data)分析、資料處理、機器學習(machine learning)的主流叢集運算框架之一,其主打簡單、快速、可擴充(scalable)、統一介面(unified) 4 大特點,更支援多種語言(Python, Java, R, SQL)可供靈活選擇運用。

Spark 採用的是 In-memory 運算技術,運算的資料存在於記憶體之中,相對於使用硬碟等儲存媒介的運算框架(例如 Apache Hadoop)而言, Spark 具有運算速度的優勢。

此外,除了提供核心運算功能的 Spark Core, Apache Spark 更在其基礎上衍生 Spark SQL, Spark Streaming, MLlib, GraphX 四大功能:

  • Spark SQL - 支援以 SQL 對資料進行操作、運算
  • Spark Streaming - 讓 Spark 能夠處理串流(streaming)形式的資料
  • MLlib - 增加機器學習(machine learning)的相關函式庫(library),讓開發者得以利用 Apache Spark 進行機器學習相關的運算
  • GraphX - 支援圖論(graph theory)相關的運算,像社群網絡(social network)相關數據分析就適合使用 GraphX 進行運算

引用自 https://databricks.com

綜觀來說,Apache Spark 是相當值得投資學習的一套運算框架。

本文將透過 Docker 以及 PySpark 為初學者提供接觸 Apache Spark 的一條捷徑。

Last updated on  Dec 16, 2022  in  Python 模組/套件推薦 , Python 程式設計 - 高階  by  Amo Chen  ‐ 5 min read

Python asyncio 從不會到上路

自從 Python 3.4 推出 asyncio 模組之後,開發者在提升 Python 程式效能的解決方案上又多了 1 種選擇。

不過相較於較為人所熟知的 multiprocessingthreading 而言,大多數初學者並不習慣非同步式(asynchronous)式的開發思維,但只要能夠掌握 asyncio 模組中幾點重要的概念,即使是從未接觸過的初學者,也能夠慢慢掌握 asyncio 的使用方式。

本文將重點介紹 asyncio 模組中的重要概念,並透過實際範例理解 asyncio 的運作,從而學會如何使用 asyncio 模組。

Last updated on  Oct 1, 2023  in  Python 程式設計 - 高階  by  Amo Chen  ‐ 13 min read

用範例輕鬆學 Python multiprocessing 模組

Python 內建的 multiprocessing 是相當重要的模組,如果有平行(parallelism)處理的需求,除了內建的 threading 模組之外,另一個就屬 multiprocessing 。

使用 multiprocessing 的好處在於能夠很大程度避開 Python GIL 對於程式效能的影響,但壞處則是對於記憶體的耗用程度也較高,即便如此也是一個必須了解的模組。

本篇將實際透過幾個範例學習如何使用 multiprocessing 模組。

Last updated on  Aug 8, 2023  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 5 min read