不想變得普通,卻又害怕不同

追查神秘 DOM 變動:原來是 1Password 搞的鬼

最近意外發現我 blog 的文章中,程式碼的 highlight 在 macbook chrome 上顯示異常,除了沒有標色以外,多行的 code block 也變成很長的單行。如下圖: 追查問題一開始我沒有任何頭緒,問了 ChatGPT 只亂給了一些建議,說 “prettyprint” ...


升級到 Rails 7.2?小心一個隱藏的效能陷阱

YJIT 預設設定

最近專案升上 Rails 7.2 後,發現不但測試速度變慢、local 開發時,改 code 之後新的 request 進來,rails server 都要等近一分鐘才有反應。中間想要關閉 server 還會完全沒有反應,要直接關閉 terminal 或下 kill -9 指令強制關閉。 ...


Rails 7.2 中,timecop + autoload 導致的 random test failures

最近專案升上 Rails 7.2 後,發現測試很容易失敗,但奇怪的是並不是每次都會重現,而且錯誤訊息也非常詭異。例如: 錯誤訊息ActiveRecord::SubclassNotFound: Invalid single-table inheritance type: User is n ...


在 Active Record 中手動指定 SQL 查詢索引

Implementing use_index in Rails

在大部分資料庫查詢中,MySQL 能夠正確分析並選擇適合的索引(index)。但因為 MySQL 依賴統計資訊與抽樣(sampling)來判斷資料分佈,因此在某些特殊情況下,可能無法選擇最佳索引。如果我們對資料的結構與查詢需求有更深入的了解,能夠判斷應該使用哪個索引,這時候我們可以手動指定 ...


幣圈的三角套匯 - USDT 搬磚套利

聯邦銀行 x MaiCoin 搬磚,開啟斜槓人生

三角套匯三角套匯(Triangular Arbitrage)是一種在外匯市場中,利用不同市場的交叉匯率報價,找到價格差異,來獲取低風險利潤的策略。因為通常會牽扯到三個貨幣,因而稱為三角套匯。 主要原理是利用市場的不效率性,而產生的價格落差,從中找到獲利空間。舉例來說,假如美元匯率原本為 3 ...


為你的 rails console 預設參數

Disable pager in your rails project

在 Rails 5.1.4 之後,我們已經可以在啟動 rails console 時,傳我們需要的 IRB configuration 參數進去 (rails#29010)。而 IRB 也有支援關閉 pager 的參數 --no-pager (irb#783)。 若我們要關閉 Ruby 3 ...


kaminari gem 分析,如何支援替陣列做分頁機制

介紹一般我們使用 kaminari 時,是為了想要替 ActiveRecord 做分頁,以避免一次性讀取所有資料。但有時候資料來源並非來自資料庫,例如當我們想顯示一個大型的 CSV 檔案時,行數過多需要分頁來優化顯示。此時我們會需要對一個陣列進行分頁。 其實,Kaminari 已經提供了一 ...


當開發者遇上 MySQL 編碼:你知道你的 Rate Limit 被巧妙繞過了嗎?

前言網站開發時,我們常常需要設定 rate limit 的限制,以防止機器人大量嘗試登入,暴力破解使用者的密碼, 或是發送大量請求,造成 Server 負擔過重。在某些情況下,我們可能會想要使用用戶的 email 或帳號當作 key 來限制 rate limit。例如登入 API 或忘記密 ...


Ruby 快速實作客戶 PHP 加解密函式

需求在朋友的公司中,有一天來了這樣的一個需求: 他們想要可以做類似 google 那種單次登入,多平台使用的功能。 然而,公司的資訊系統是使用 PHP 做的,而工作管理系統則是使用 Ruby on Rails 寫的。 解密 token 的方式他們在 PHP 上已經有一份實作了,現在需要在 ...


AI 實驗文章

手機購買心理大揭密:為何蘋果永不貶值?三星CP值魅力炸裂!

這次我們請來了 ChatGPT 來為大家深入探討手機行銷中的心理戰術,尤其是蘋果和三星兩大巨頭的不同策略,以及它們對消費者的心理影響。你是否曾經在網路上看到關於 iPhone 保值的言論,然而實際計算後卻發現拿 iPhone 每天的損失跟 Galaxy S 或 Note 系列手機差不多,甚 ...