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

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 上已經有一份實作了,現在需要在 ...


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

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


ChatGPT 初體驗:優雅處理數字格式化

構建自己的 JavaScript 版 Rails number_with_precision 函式

在網頁開發中,我們經常需要處理數字的格式化,例如將小數四捨五入到指定精準度、添加千位分隔符…等等。對於使用 Ruby on Rails 框架的開發者來說,number_with_precision 函式是個方便實用的工具。但是,如果我們在 JavaScript 環境中工作,我們需要自己實現 ...


天天當文書處理員?讓 API 文件自動生成吧!

利用 RSpec 測試自動生成 API 文件

在我們日常開發的過程中,難免有時候會需要去調整 API。在多次調整之後,往往當初寫的文件已經跟不上變化,而漸漸失去了參考價值。甚至有可能因此誤導前端串接人員,導致 Bug 的產生。 或是當程式邏輯很複雜的時候,一個不小心改動到了 API 回傳值而沒有注意到。剛好這個功能當下並沒有人有用到的 ...


三行 css 簡單地讓單行置中,多行置左

有一天 PM 突然表示,我們遊戲介面中平常文字都是置中的,畫面看起來很協調。但是如果文字太長換行了,這時候多行都一起置中,有些行長,有些行短,看起來就會參差不齊。因此想要做一個效果是:「超過一行的話,文字就要改成置左」。效果大概如下圖: 那時候心裡一驚,不太妙,感覺會很複雜,可能得要用 ...


MySQL 編碼挑選與差異比較

utf8_bin vs. utf8_unicode_ci vs. utf8_general_ci

先說結論 若只存英文、數字…等鍵盤上會出現的字的話,可以用 utf8_general_ci(但不推廌) 若會存中文、德文…等非英文的字、或存 Emoji 的話,建議用 utf8mb4_unicode_ci utf8mb4 vs. utf8在 MySQL 5.5.3 以後,一般來說會建 ...


不使用 lock 又要避免 race condition,可能嗎?

在 Rails 的框架下,官方文件對於如何防止 race condition 著墨並不多。可能是因為 race condition 跟應用層邏輯比較有關,Rails 只是提供一些對 DB 或對 cache 方便操作的方式,這些方式是否會形成 race condition 是自己要去注意、並 ...


therubyracer 和 libv8 的安裝問題

本來以為是 library 檔問題,試了參照網路上的教學安裝 v8 但沒有用 brew install v8 # or brew install v8-315後來錯誤嘗試發現是很蠢的問題 在此記下來以免忘記 移除乾淨所有版本首先要先把所有裝好的 therubyracer, libv8 都 ...