Amo Chen

看看別人怎麼打造能獲利的生意 - FounderBeats

聽別人的故事不只是為了不要重蹈別人的錯,更是為了打破你腦中那固有的認知。 FounderBeats 跟 Indie Hackers 一樣都記錄著別人如何軟體服務創業的故事,不過我覺得它的介面很

Posted on  Mar 27, 2023  by  Amo Chen  ‐ 1 min read

用白話文談數學公式 - 期望值(Expected value)

一直以來都覺得「期望值」這個詞很困惑,期望值到底是誰的期望?為什麼期望會有值?相當謎啊⋯⋯。

後來讀了一些文件之後,就比較了解期望值的意義是什麼,所以特別用比較白話的方式寫成一篇文章。

Posted on  Mar 25, 2023  in  數學概念  by  Amo Chen  ‐ 3 min read

新世代的 Python Linter - Ruff

自從 Rust Programming Language 開始展露頭角之後,很多工具都開始見到 Rust 的影子,或是底層由 Rust 重寫,或是關鍵部分由 Rust 實作,這些由 Rust 所改寫的工具幾乎都有個共通點 —— 快!

Ruff 就是 1 套底層由 Rust 實作的 Python Linter, 號稱速度快上其他常見的 Linter 約 10 ~ 100 倍之間,同時支援快取(cache)、自動修正(autofix)、Python 3.11, 甚至還提供 pre-commit 以及 VS Code 擴充(extension)等功能,除了用心還有貼心!

另外其功能近乎 Flake8 的完整功能(詳見 FAQ - Ruff ),因此許多人也放心選擇使用 Ruff 作為其開發時的 Linter 使用,包含 FastAPI, pandas, Apache Airflow 等開發團隊都已經使用 Ruff 作為其 Linter!

一起來認識 Ruff 這個新世代的 Python Linter 吧!

Posted on  Mar 23, 2023  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 4 min read

Raycast ➡ macOS 使用者必備生產力工具

一直以來我都是 Alfred 的使用者,直到我遇到 Raycast, 我就頭也不回的奔向它懷裡。 Raycast 與 Alfred 雖然都是增強 macOS 的 spotlight search 的功能,但它們最大不同是: Raycast 免費方案就能夠使用擴充

Posted on  Mar 23, 2023  by  Amo Chen  ‐ 1 min read

後端工程師面試考什麼 - 快取的置換策略(Cache replacement policies)

談到快取,一定會談到 Cache 的置換策略,也就是快取滿了要怎麼處理的問題。

理想上,能將所有資料都快取起來的話,就可以有效加速系統回應時間以及減輕資料庫負擔,但這是相當耗費/浪費系統資源的作法,除了系統資源有限之外(記憶體有限、儲存空間有限),另外根據 80/20 法則,系統中 80% 的資料存取要求,可能僅僅來自那 20% 的資料,我們僅需要針對這 20% 的資料進行快取就能夠在有限資源的條件下,十分有效地提升系統效能。

所以一般快取都會設定大小(size),不會無限制的快取任何資料,也因此談到快取就會談到快取的置換策略,在 cache 滿的時候選擇刪除哪些舊資料以容納新資料的方法。

本文將介紹幾種面試常見的快取置換策略。

Posted on  Mar 20, 2023  in  後端面試準備  by  Amo Chen  ‐ 6 min read

獨立開發者的故事 - Indie Hackers

「體制外創造體制」是我最近最喜歡的一句話。 而創造新體制這件事,其實早已經有很多人投入其中,他們不追求 A, B, C, D 輪融資的成功模式,而是以獨立開發

Posted on  Mar 20, 2023  by  Amo Chen  ‐ 2 min read