Blog Posts
INSERT…ON DUPLICATE KEY UPDATE ..在 MySQL 5.7.26(Aurora MySQL 2.10.3) 後的行為差異
- Database
- 09 Jun, 2023
MySQL 5.7.26 修復了一個 bug #2596684([release note](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-26.html
read more
bullet gem 可能干擾對使用 preload 所造成效能影響的判定
- Backend
- 26 Jul, 2022
最近遇到了一個案例是,有個使用 includes 去 preload association 的地方,相對於直接 pluck 出來,花的時間慢的異常多。研究之後發現是 bullet 的 unused_eager_loading_enable 偵測打開後,會一定程度的影響效能。 如同這位開發者在 [issue](https://github.com/flyerhzm/bullet/issu
read more
Fetch API 沒有傳送 cookies
- Web
- 25 May, 2022
最近遇到一個案例,用戶明明有登入,但是打 API 時,卻因為沒有登入而噴錯。 在追查 HTTP Request/Response 時,眼尖的同事發現 Request Headers 根本沒有帶上 cookies,所以伺服器因為沒有 session 登入的資訊,所以才會當成 Client 端還沒登入。但奇怪的是 Client 端的網頁明明就是登入狀態。還有另一個線索是用戶的 Chrome 瀏覽器是
read more
Chrome, AWS S3 and CORS
- Web
- 20 Jun, 2021
前陣子與公司的其他夥伴一起找出了偶發的 CORS 原因,紀錄一下 如果一個網站內有包含對同一個 URL 的載入,但是有兩種方式,一種是從 HTML document 載入,另一種是用 xhr 存取,並且 Chome 有開啟 cache,就有可能會遇到。 重現問題 例如下面這個簡單的範例,用兩種方式從 AWS cloudfont 抓取圖片,CDN 的來源是 AWS S3
read more
如何 preload polymorphic associations
- Backend
- 10 Apr, 2021
因為想要用 includes preload polymorphic associations,但是不同 model 後面的 association 對象不一樣時不能直接用。後來在網路上找到可以用 ActiveRecord::Associations::Preloader preload 已經初始化後的 records 來達到目的。 **備註:Rails 6 已經支援 preload p
read more
[Rails][MySQL] 使用 update_all + JOIN + LIMIT 需注意效能問題
- Backend
- 18 Feb, 2021
MySQL 使用 JOIN + update_all 時,若遇到 LIMIT 則會轉為 subquery,需注意效能問題。 Rails 在使用 update_all 時,如果有用到 JOIN,會改用 subquery 的形式改寫,但若 Adapter 為 MySQL 時就會維持,因為 MySQL 語法本身支援 JOIN + UPDATE。但若是包含 LIMIT 時,由於 MySQL 也不支援,所
read more
Ruby Concurrency 筆記
- Backend
- 04 Jan, 2021
Ruby 3.0.0 在去年聖誕節推出,release note 提到了一些 concurrency 相關的新功能,一邊研究一邊做個紀錄 在 Ruby 3.0.0 Released 提到了 Ruby 針對 Concurrency 加入了 [`Fiber#sch
read more
[Mac][iTerm2] 解放 Ctrl←、Ctrl → 用於字與字之間的移動
- Productivity
- 05 Dec, 2020
終於有時間來研究這件事要怎麼做到,後來研究出最簡單的解法是這樣 簡單來說就是想簡單做到下面這件事:後來發現只要把目前被拿來切換全螢幕的快捷鍵改成用別的鍵就好了。 System Preferences>Keyboard>Shortcuts>Mis
read more