好影片分享 — Every React Concept Explained in 12 Minutes
React 是目前前端 3 大框架之一,應該也是市佔最大的前端框架。 p.s. 通常市佔越大,也代表越容易有工作機會 如果有興趣學習 React 的話,推薦可以先看看 “Every
Posted on May 9, 2024 by Amo Chen ‐ 1 min read
輕鬆學習程式語言和最新技術趨勢,踏上從小工到大師之旅!
React 是目前前端 3 大框架之一,應該也是市佔最大的前端框架。 p.s. 通常市佔越大,也代表越容易有工作機會 如果有興趣學習 React 的話,推薦可以先看看 “Every
Posted on May 9, 2024 by Amo Chen ‐ 1 min read
開發 TCP/IP 應用服務的人應該都知道通訊埠(port),譬如 HTTP server 通常都使用 80 port, HTTPS 則通常使用 443 port, SMTP 協定則使用 25 port 等等。 通訊埠的範圍為 0 - 65535, 其中通訊埠 0
Posted on May 8, 2024 by Amo Chen ‐ 1 min read
前端開發一定都會使用類似 Webpack DevServer 的擴充,只要程式碼或檔案有所變動,就讓瀏覽器自動刷新頁面以顯示最新結果,現代有些前端框架也會整合類似功能增加開發
Posted on May 7, 2024 by Amo Chen ‐ 1 min read
Python 的 Iterable, Iterator 與 Generator 是經常會讓人產生混淆的事物,因為這 3 個都可以用 for
迴圈走訪,因此有些熟悉 Python 的面試官很喜歡問這 3 者之間的差異,追根究底是因為對這 3 者不熟悉的話,很容易寫出類似以下的低效率程式碼:
set([x for x in iterator])
本文將透過實際範例帶大家認識 Iterable, Iterator 與 Generator! 再也不搞混!
Posted on May 3, 2024 in Python 程式設計 - 中階 by Amo Chen ‐ 4 min read
BM25 是一個經典的數學公式,廣泛應用於評估文件與查詢字串之間的相關性,因此在某些搜索引擎的搜索結果排序中扮演重要角色。例如,Elasticsearch 就內建了使用 BM25 進行結果排序的功能。
此外,在 AI 領域,像是 RAG (Retrieval-Augmented Generation) 等應用,也實作使用 BM25 來檢索(retrieve)相關文件。
對 BM25 有所理解的話,將會對從事搜索相關工作的人有所裨益。
本文將以白話文說明搭配範例的方式,介紹 BM25 公式以及如何計算。
Posted on Apr 29, 2024 in 數學概念 by Amo Chen ‐ 5 min read
近年來不斷地看到一些公司或服務採用 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
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 四大功能:
引用自 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 3.4 推出 asyncio 模組之後,開發者在提升 Python 程式效能的解決方案上又多了 1 種選擇。
不過相較於較為人所熟知的 multiprocessing 與 threading 而言,大多數初學者並不習慣非同步式(asynchronous)式的開發思維,但只要能夠掌握 asyncio 模組中幾點重要的概念,即使是從未接觸過的初學者,也能夠慢慢掌握 asyncio 的使用方式。
本文將重點介紹 asyncio 模組中的重要概念,並透過實際範例理解 asyncio 的運作,從而學會如何使用 asyncio 模組。
Last updated on Oct 1, 2023 in Python 程式設計 - 高階 by Amo Chen ‐ 13 min read
Python 內建的 multiprocessing 是相當重要的模組,如果有平行(parallelism)處理的需求,除了內建的 threading 模組之外,另一個就屬 multiprocessing 。
使用 multiprocessing 的好處在於能夠很大程度避開 Python GIL 對於程式效能的影響,但壞處則是對於記憶體的耗用程度也較高,即便如此也是一個必須了解的模組。
本篇將實際透過幾個範例學習如何使用 multiprocessing 模組。
Last updated on Aug 8, 2023 in Python 程式設計 - 初階 by Amo Chen ‐ 5 min read