Pack Debian packages with apt-offline

最近遇到對方要求需要在無網路的環境下進行安裝 Package,簡單的方式可以一個一個去找到需要的安裝檔,但為了節省時間,我們希望這個流程能盡量簡化,在網路上找到了 apt-offline 的工具,做個筆記備忘。 離線機器安裝 apt-offline 跟相依跟相依的相依 環境 Ubuntu 20.04 LTS * 2 ​ 下載後使用 dpkg -i ...

實驗 MySQL 跟 PostgreSQL 在 repeatable read 下的差異

最近發現在 isolation 都設為 repeatable read 時,MySQL 與 PostgreSQL 在操作上有些不一樣的行為,以下會分成兩個實驗來比較差別。 先複習一下 Read Committed 與 Repeatable Read 的分別避免了什麼事情發生: Read Committed 避免了兩個 transactions 同時執行時,後者讀取到未完成的修改 (di ...

關閉 macOS capslock 的按鍵延遲

Apple 在 macOS Mojave 後,貼心的加上 capslock 點擊延遲,為了防止使用者在打字的時候誤觸,但常常造成在中英快速切換時沒有成功,系統也沒有相關設定可以關閉,以下是兩個試過有效處理的兩個方式。 方案一 開啟系統 Slow Key 功能,然後把延遲調到最低。簡單快速又有效,缺點是這設定會使 key repeat 按鍵連續送出失效。 設定位置 System Pref ...

Rails ActiveRecord — count、length、size

使用 ActiveRecord 取得資料筆數的方式有三種用法,分別是 count、length、size,各自由不同的實作去取得資料筆數,正確的使用可以避免不必要資料庫查詢。 > 以下範例為 GroupClass 底下有多堂 Lesson 課程 group = GroupClass.first lessons = group.lessons.all count ...

Rails ActiveRecord — preload、eager_load、includes

預載主要是為了避免 N+1 問題,以下會先使用常搞混的 joins 看看,接著嘗試三種預載方式,來看他們實際產生的 Query 情況,比較之間的差異。 > 測試於 Rails 4.2、Rails 5.2 先產生兩個測試用的資料表 Category - Book +----+-------+ +----+-------------+----------+ ...