Type something to search...

Blog Posts

新網站上線
新網站上線

以前曾經有用 GitHub Pages 透過 Octopress 放 blog 。但後來覺得要用 markdown 編輯文章實在太麻煩了,想要先求可以固定發文章,就改用 Medium 。不過其實還是想把文章放在自己的網站。 最近想說現在 AI 很厲害,應該可以不用

read more
INSERT…ON DUPLICATE KEY UPDATE ..在 MySQL 5.7.26(Aurora MySQL 2.10.3) 後的行為差異
INSERT…ON DUPLICATE KEY UPDATE ..在 MySQL 5.7.26(Aurora MySQL 2.10.3) 後的行為差異

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 所造成效能影響的判定
bullet gem 可能干擾對使用 preload 所造成效能影響的判定

最近遇到了一個案例是,有個使用 includes 去 preload association 的地方,相對於直接 pluck 出來,花的時間慢的異常多。研究之後發現是 bullet 的 unused_eager_loading_enable 偵測打開後,會一定程度的影響效能。 如同這位開發者在 [issue](https://github.com/flyerhzm/bullet/issu

read more
Fetch API 沒有傳送 cookies
Fetch API 沒有傳送 cookies

最近遇到一個案例,用戶明明有登入,但是打 API 時,卻因為沒有登入而噴錯。 在追查 HTTP Request/Response 時,眼尖的同事發現 Request Headers 根本沒有帶上 cookies,所以伺服器因為沒有 session 登入的資訊,所以才會當成 Client 端還沒登入。但奇怪的是 Client 端的網頁明明就是登入狀態。還有另一個線索是用戶的 Chrome 瀏覽器是

read more
Chrome, AWS S3 and CORS
Chrome, AWS S3 and CORS

前陣子與公司的其他夥伴一起找出了偶發的 CORS 原因,紀錄一下 如果一個網站內有包含對同一個 URL 的載入,但是有兩種方式,一種是從 HTML document 載入,另一種是用 xhr 存取,並且 Chome 有開啟 cache,就有可能會遇到。 重現問題 例如下面這個簡單的範例,用兩種方式從 AWS cloudfont 抓取圖片,CDN 的來源是 AWS S3

read more
如何 preload polymorphic associations
如何 preload polymorphic associations

因為想要用 includes preload polymorphic associations,但是不同 model 後面的 association 對象不一樣時不能直接用。後來在網路上找到可以用 ActiveRecord::Associations::Preloader preload 已經初始化後的 records 來達到目的。 **備註:Rails 6 已經支援 preload p

read more
[Rails][MySQL] 使用 update_all + JOIN + LIMIT 需注意效能問題
[Rails][MySQL] 使用 update_all + JOIN + LIMIT 需注意效能問題

MySQL 使用 JOIN + update_all 時,若遇到 LIMIT 則會轉為 subquery,需注意效能問題。 Rails 在使用 update_all 時,如果有用到 JOIN,會改用 subquery 的形式改寫,但若 Adapter 為 MySQL 時就會維持,因為 MySQL 語法本身支援 JOIN + UPDATE。但若是包含 LIMIT 時,由於 MySQL 也不支援,所

read more
Ruby Concurrency 筆記
Ruby Concurrency 筆記

Ruby 3.0.0 在去年聖誕節推出,release note 提到了一些 concurrency 相關的新功能,一邊研究一邊做個紀錄 在 Ruby 3.0.0 Released 提到了 Ruby 針對 Concurrency 加入了 [`Fiber#sch

read more
[Mac][iTerm2] 解放 Ctrl←、Ctrl → 用於字與字之間的移動
[Mac][iTerm2] 解放 Ctrl←、Ctrl → 用於字與字之間的移動

終於有時間來研究這件事要怎麼做到,後來研究出最簡單的解法是這樣 簡單來說就是想簡單做到下面這件事:後來發現只要把目前被拿來切換全螢幕的快捷鍵改成用別的鍵就好了。 System Preferences>Keyboard>Shortcuts>Mis

read more