Amo Chen

白話文解說 obfuscated indexes

Obfuscated indexes, 是描述 database 的索引(index)被混淆造成 query engine 無法順利使用正確索引進行查詢的問題。 舉個例子說明會更清楚,首先考慮以下的 table schema: CREATE TABLE `todos` ( `id` int NOT NULL AUTO_INCREMENT,

Posted on  Oct 11, 2023  by  Amo Chen  ‐ 2 min read

為什麼 Python 程式碼在 function 裡執行較快?

原本我以為這只是單純因為 Python 需要搜尋不同的 variable scope 的關係,實則不是 🤣 更詳細的原因在於 function scope 內用到的 bytecode 與 global scope 的 bytecode 不一樣。 function scope 用的是 STORE_FAST 這個指令,而 global scope 用

Posted on  Oct 9, 2023  by  Amo Chen  ‐ 1 min read

LocalStack — AWS 模擬器

使用 AWS 要提供信用卡資訊,對於學生族群來說較不友善,畢竟現在很多公司都多多少少有使用 AWS 提供的雲端解決方案,如果學生可以提早接觸到如何使用 AWS 相關

Posted on  Oct 8, 2023  by  Amo Chen  ‐ 1 min read

你的加密不是加密

Encoding, Encryption, Hash 這 3 個名詞之間的不同,是每個程式設計師要學習的知識,而且也是面試時經常會問的考題,因為這是資訊安全的基本概念,藉由這個問題可以知道你有

Posted on  Oct 7, 2023  by  Amo Chen  ‐ 2 min read

Python - super() 函式與 MRO 詳解

Python 的物件導向程式設計(OOP)有 2 個一定要懂的東西:

  1. super() 函式
  2. MRO(Method Resolution Order) / 方法解析順序

如果不懂得這 2 個東西,就無法徹底解放類別(class)的力量,甚至可能導致寫出不夠彈性而且冗長的程式碼。

super() + MRO = 超級瑪利歐?(誤

本文將從 super() 函式開始講解,說明 Python 的 MRO(Method Resolution Order) ,並介紹 MRO 的特性在實務上的應用。

如果你無法正確回答以下範例結果的執行結果,那麽推薦你看完本文:

class Parent(object):
    NAME = 'Parent'
    def __str__(self):
        return self.NAME

class Child(Parent):
    NAME = 'Child'
    def __str__(self):
        return super().__str__()

c = Child()
print(c)

正確答案為: Child

Posted on  Oct 6, 2023  in  Python 程式設計 - 中階  by  Amo Chen  ‐ 6 min read

Video.js - 肖年仔,要不要做個 Youtube 啊~

先前介紹 Web 前端專門播放音訊的 Howler.js, 這次介紹 Web 前端專門播放影片的 Video.js 。 Video.js 是個開放原始碼專案,專門做跨瀏覽器影片播放器(player),支援 WebM, MP4 等常見

Posted on  Oct 5, 2023  by  Amo Chen  ‐ 1 min read

好文共賞 — 如何用單核心 CPU 打天下

說到怎麼處理效能問題,大家直覺應該都是做 parallelism 或者 concurrency, 不過其實也可以選擇改變演算法做效能的改善,這種做法的好處是可以不用額外處理 parallelism 或者 concurrency 所帶來的複

Posted on  Oct 4, 2023  by  Amo Chen  ‐ 2 min read