OOZOU
與我們聯繫
洞察

今日所學

來自 OOZOU 團隊的簡短實用筆記,記錄日常工程與設計工作中的小收穫。

全部主題shell 30ruby on rails 22ruby 12macos 10vim 7figma 4cli 3javascript 3heroku 1elixir 1
cliFebruary 16, 2026

用 YOLO alias 讓 Claude Code 完全自主執行

--dangerously-skip-permissions 這個 flag 能讓 Claude Code 不經確認提示就執行指令和編輯檔案。每次都要打這串字很快就會讓人厭煩。

cliMarch 20, 2024

在 GNU/Linux 的獨立 Nvidia GPU 上執行指令(例如 ollama)

要確保某個指令(CLI)在 GNU/Linux 中使用你的 NVIDIA GPU,可以在指令前加上環境變數 \\NV\PRIME\RENDER\OFFLOAD=1 和 \\GLX\VENDOR\LIBRARY\NAME=nvidia。

ruby on railsFebruary 10, 2022

用 Pundit Policy 管理 permitted parameters、預設值與各 action 的參數

要管理 permitted params,你可以在你的 policy 中加入 permitted\attributes 和 permitted\attributes\for\#{action},例如

ruby on railsJanuary 31, 2022

在 Turbo 中用 `requestSubmit` 送出表單

Turbo 會監聽 form 上的 submit 事件。因此,用 JS 送出表單時,請一律使用 requestSubmit。

ruby on railsJanuary 19, 2022

在 GitHub Actions 中讓 Rubocop 與 ESLint 忽略 bundled gems

Rails 專案在 GitHub actions 中通常會把 gems 安裝到 vendor 目錄,方便在後續執行時使用快取。

macosAugust 20, 2021

為你的「部分」螢幕截圖或純邊框圖片加上 macOS 風格的陰影

不論你喜不喜歡,macOS 擷取完整應用程式視窗的快捷鍵(⇧- ⌘- 5)預設會在儲存的圖片周圍加上一層淡淡的陰影。當你把螢幕截圖或圖片加進文件時,這能讓畫面更…

figmaJune 22, 2021

利用套上 hue 填色效果的 overlay 圖層製作單色畫面

利用套上 hue 填色效果的 overlay 圖層製作單色畫面

figmaJune 18, 2021

按住 ⌥option 並沿著輸入欄位點擊拖曳即可調整尺寸

按住 ⌥option 並沿著輸入欄位點擊拖曳即可調整尺寸

cliMay 25, 2021

git check-ignore

這個指令可以協助你檢查某個檔案或路徑是否被忽略,加上 -v 參數時還會顯示符合的 exclude 樣式(文件)。

rubyApril 30, 2021

讓 Pry 支援貼上使用行首點記法的多行 Ruby 區塊

我們現在很常使用行首點記法,例如

ruby on railsApril 18, 2021

Rails 6、Ruby 3、Bootstrap 5 與 Hotwire

以 Hotwire 延伸 Bootrails 的部落格文章: 所有最新潮的東西(截至我寫這篇 TIL 的時候):

figmaFebruary 17, 2021

在 Figma 中將文字物件轉成 Title Case

你可以設定文字框的屬性,讓所有文字自動轉成 Title Case(還有其他常見的大小寫格式)

herokuJanuary 6, 2021

縮減 Heroku Slug 大小

首先,安裝 Heroku Repo plugin:

shellDecember 8, 2020

在 Bash 和 Zsh 執行無痕/私密指令

只要在指令前面加一個空格,它就不會被存進 ~/.bash\_history。例如 qrencode -o out.png "Some secret text"

macosNovember 7, 2020

將 SVG 轉成 PNG

在 MacOS 上,安裝 inkscape(用 brew),然後這樣使用:

figmaOctober 31, 2020

Figma 中 CMD+Click 的行為

在 Designer mode 按住 ⌘CMD 並點擊左鍵,會選取該 frame/group 裡最深層的圖層;而在 inspector/developer mode 這麼做,則會選取你選取範圍內最外層的物件/frame/group…

ruby on railsOctober 27, 2020

Rails Cache-Control

若要在 Heroku 上啟用靜態資產的 cache-control 標頭設定並使用 CDN:

shellOctober 22, 2020

用 homebrew 升級 postgres 資料庫

要升級 postgres,可以執行

ruby on railsOctober 14, 2020

修正 Heroku rails console 的輸入問題

如果你在 Heroku(或其他地方)的 rails console 貼上很多行內容,可能會遇到各行「互相滲透」擠在一起的問題。

rubyOctober 14, 2020

不含插值的 Heredoc

有時你會想使用 Ruby 的 Heredoc 但不進行插值('#{....}')。只要在你的關鍵字前後加上單引號就可以做到:

ruby on railsOctober 14, 2020

在 Rails 中為 DOM 產生唯一 ID

Rails 有許多很棒的 view helper,其中之一就是 dom\id:*

ruby on railsOctober 13, 2020

為 Rails 5 attributes API 新增自訂型別

Rails 5 的 attributes API 讓我們可以非常輕鬆地建立 form object。

macosOctober 13, 2020

在 macOS 的 Dock 加入空白間隔來為應用程式分組

打開 term(或同類終端機)並貼上以下這行指令:

shellOctober 13, 2020

用 Amazon AWS S3 CLI 複製檔案並設定權限

打開 term(或同類終端機)並貼上以下內容:

shellOctober 13, 2020

憤怒的 Docker 大清除

如果你在 Docker 上遇到 No Space left 錯誤,這是暴力解法:

ruby on railsOctober 13, 2020

不透過 HTTP 將檔案附加到 ActiveStorage

如果你想附加一個在磁碟上產生的檔案,或是從使用者提交的 URL 下載下來的檔案,可以這樣做。

rubyOctober 13, 2020

在 Ruby 中自動建立中間層的 Hashtable

所有中間層的 hashtable 都會自動神奇地建立起來

shellOctober 13, 2020

用相同檔名 + 前綴來備份檔案

注意:其實你可以在任何指令中使用 !#:1,因為那代表傳給指令的最後一個參數。

shellOctober 13, 2020

Bash alias 與魔法

我在使用者資料夾裡有一個獨立的檔案,叫做 ~/.aliases,用來存放我所有的 bash alias。我很常用 alias,也常常新增,所以我寫了一個 bash function 來即時新增…

elixirOctober 13, 2020

用 Elixir 計算 anagram

例如:

rubyOctober 13, 2020

用 rbenv 為單一指令切換 Ruby 版本

你可以用 rbenv local 暫時切換 Ruby 版本

macosOctober 13, 2020

在 macOS 上更改系統名稱

在 term(或同類終端機)中,複製並貼上:

rubyOctober 13, 2020

把 VS Code 的 Go to definition 改成 Cmd+Click

只要打開你的使用者設定 JSON 檔,使用這個選項:

shellOctober 13, 2020

查詢 IKEA 商品庫存

如果你正在等某件 IKEA 商品補貨,這裡有一個能自動掌握最新狀態的實用解法。這篇指南會說明如何用 shell script 檢查 IKEA 的庫存狀況,並在…

shellOctober 13, 2020

用 shell script 檢查指令是否存在

用 shell script 檢查指令是否存在

macosOctober 13, 2020

Chrome 分頁操作技巧

有時候我想回到上一個瀏覽的頁面,但又想保留目前開著的這一頁。用快捷鍵就能輕鬆做到

macosOctober 13, 2020

清理 brew 上過時的 formula

使用 brew cleanup 拿回一些空間!

ruby on railsOctober 13, 2020

從 Enumerable 建立 Hash (Rails 6.0)

新方法讓你可以從 Enumerable 建立 Hash:

ruby on railsOctober 13, 2020

撰寫具冪等性的 migration

當你要撰寫破壞性的 migration 時,如果要移除資料表,請使用 if\exists: true;如果要新增或移除欄位,請先檢查資料表是否存在…

shellOctober 13, 2020

建立你自己的 git 指令(alias)

有沒有想過縮短 git 指令?你當然可以用 shell alias,但你得一直記著前後脈絡,才不會忘記每個 alias 代表什麼。其實你可以用 alias 在 git 裡定義自己的…

shellOctober 13, 2020

刪除 Git 中已經 merge 的 branch

你可以在 egrep -v 'master|develop|foo|bar' 中放行更多 branch

shellOctober 13, 2020

刪除已 merge 的 git branch

刪除所有已經 merge 的本機 git branch 的實用 git 指令 git branch --merged | egrep -v "(^\\|master|dev)" | xargs git branch -d*

javascriptOctober 13, 2020

JS 的解構賦值

簡單的例子 javascript const [a, b, ...c] = [10, 20, 100,200] // a= 10, b=20, c=[100,200] const { first, second } = { first: 1, second: 2 } // first = 1, second = 2

shellOctober 13, 2020

在 Git 中比較本機檔案與遠端版本的差異

只要執行下面的指令,就能取得與遠端版本的 diff

shellOctober 13, 2020

根據 commit 找出所屬的 branch

c198bb715 Make default expired description logic pretty `

shellOctober 13, 2020

把先前的 commit 強制 push 到 repo

如果你已經 push 了一些程式碼,想要 force push 某個較早的 commit,可以這樣做 shell git push origin +commit\sha^:branch\name

shellOctober 13, 2020

取得目前的 git branch 名稱

取得目前的 git branch 名稱

macosOctober 13, 2020

取得你目前所連 wifi 的密碼

password: "!forHackers" `

shellOctober 13, 2020

瀏覽單一檔案的 Git 歷史紀錄(GUI)

瀏覽單一檔案的 Git 歷史紀錄(GUI)

javascriptOctober 13, 2020

如何在 JavaScript 中用一行程式碼建立帶有屬性的 HTML 元素

在開發 JavaScript 專案時,動態建立 HTML 元素是很常見的需求。傳統上,你可能會用好幾行程式碼來建立元素並逐一設定多個屬性…

ruby on railsOctober 13, 2020

如何在你的專案中找出 god objects(Rails)

移到專案根目錄,cd 進 app/models(當然是透過 CLI),接著執行 wc -lw \ | sort -u*

vimOctober 13, 2020

如何離開 Vim

1. 安裝最新版本的 Vim 2. 在 Vim 中開啟一個檔案 3. ⌘-Q 並關閉終端機 4. 重新開啟終端機

vimOctober 13, 2020

如何真正!!離開 vim

在終端機中

vimOctober 13, 2020

如何在 VIM 中用 sudo 儲存檔案

如何在 VIM 中用 sudo 儲存檔案

ruby on railsOctober 13, 2020

可送出到另一個 action 的 HTML 表單

我很早就知道可以透過 submit 按鈕送出值,藉此追蹤表單是由哪個按鈕送出的,例如

ruby on railsOctober 13, 2020

想覆寫先前設定的排序時

如果你想覆寫先前設定的排序(即使是透過 default\_scope 設定的),請改用 reorder()。

rubyOctober 13, 2020

提升 Bundler 效能

透過在多個 jobs 中同時執行 bundler 任務來提升 bundler 效能:

shellOctober 13, 2020

終止卡住的 rails

我想終止在特定 port 上執行的 rails。(我的筆電上跑著好幾個 rails 伺服器。)

shellOctober 13, 2020

終止無回應的 SSH session

SSH session 偶爾會失去回應。如果我讓筆電進入睡眠,這種情況相當常見。與其直接關掉分頁,你可以使用 SSH Escape Characters 來終止 session

ruby on railsOctober 13, 2020

限制數量的 has_many 關聯

限制數量的 has_many 關聯

shellOctober 13, 2020

列出目錄結構並排除一個或多個目錄

想過在顯示目前目錄結構時排除一兩個目錄嗎?

ruby on railsOctober 13, 2020

列出你的 model 名稱

注意:RUBYOPT=-W0 可以在執行 rails 指令時避免冗長輸出,藉此抑制警告訊息。

shellOctober 13, 2020

用 hub 從命令列建立 pr

先用 brew 安裝 hub:brew install hub 然後使用像下面範例這樣的簡單指令:hub pull-request -m "best pr ever" -b oozou:develop -h feature/awesome-improvements

macosOctober 13, 2020

我最常用的 slack 快捷鍵

⌘-K(or T) 開啟頻道切換器(我完全靠這個快捷鍵在頻道間移動,並把 slack 設定成隱藏所有沒有新訊息的頻道)

rubyOctober 13, 2020

optional relation + RSpec 搭配 shoulda-matchers

User 1 - 0..1 Laptop

ruby on railsOctober 13, 2020

Postgres 函式與 Non-sargable 查詢

在 where 子句中使用 postgres 函式可能會讓查詢變成 non-sargable。

ruby on railsOctober 13, 2020

PostgreSQL UPDATE Join

這個查詢示範如何使用 PostgreSQL 的 UPDATE join 語法,根據另一張資料表的值來更新某張資料表的資料。例如;

vimOctober 13, 2020

在任何 Vim 模式下快速上下移動整行

我在 vim 裡經常搬動程式行,所以建立了一些 mapping 讓這件事更輕鬆。這些 mapping 對應 ⌘-j 往下移、⌘-k 往上移。在 normal、insert 和 visual 模式都能用。vim nnoremap <D-j> :m…

rubyOctober 13, 2020

移除 ruby 2.6 內建的 bundler

在已安裝 bundler v2 的情況下用 ruby 2.6+ 產生 rails 6 應用程式,會建立無法使用的 binstubs。如果你看到這個錯誤 You must use Bundler 2 or greater with this lockfile. 你可以移除…

shellOctober 13, 2020

從你的 branch 移除不要的 commit

從你的 branch 移除不要的 commit

vimOctober 13, 2020

在 VIM 中重新命名檔案

這是我在 VIM 中用來重新命名檔案的一個方便函式(在 MacVIM 和 Neovim 也能用)

macosOctober 13, 2020

在 DELETE 之後重設 Postgres 資料表的 sequence

從資料表刪除最近的紀錄之後,如果自動遞增欄位的連續性對你很重要,可以重設它的 sequence 計數器。以下面這張 users 資料表的操作為例:

shellOctober 13, 2020

在 Git 中還原被刪除的檔案

在 Git 中還原被刪除的檔案

rubyOctober 13, 2020

對你目前的 branch 執行 rubocop

對你目前的 branch 執行 rubocop

rubyOctober 13, 2020

在 commit 之前執行 rubocop

Git hooks 對於在 Git repository 中自動化任務、落實程式碼規範來說非常強大。Git hooks 的一個常見用途,就是在允許 commit 之前先執行自動化測試和程式碼分析工具…

shellOctober 13, 2020

對不同的輸入重複執行同一個指令

如果你必須對不同的輸入重複執行同一個指令。

ruby on railsOctober 13, 2020

Rails 中的 scope or scope

scope :human, -> { user.or(author) } scope :terminator, -> { admin.or(robot) } `

shellOctober 13, 2020

查看先前 commit 中被刪除的檔案 [git]

查看先前 commit 中被刪除的檔案 [git]

shellOctober 13, 2020

用 cURL 發送訊息到 Slack

Slack 允許你透過 Webhooks 服務發送訊息

shellOctober 13, 2020

對舊的 repo 做 shallow clone

如果你接下來要作業的 repo 不需要完整的 git 歷史,可以指定 clone 深度,只 clone 這個 repo 的 x 個 revision。

ruby on railsOctober 13, 2020

在你的 Rails app 中顯示 TODO 和其他註記

你知道可以用 rails notes 顯示 rails app 中所有的 TODO/OPTIMIZE/FIXME 嗎?

javascriptOctober 13, 2020

用 Vue.js 實作簡單的 Flux 架構

對於只需要簡單狀態管理模式的小型 app,我總是用一個元件來保存整個 app 的狀態,也就是一個 container。它作為 single source of truth,讓 app 參照自己的狀態…

rubyOctober 13, 2020

抑制 rspec 警告

$ RUBYOPT=W0 bundle exec rspec spec/ ...

ruby on railsOctober 13, 2020

在 rails log 加上有用的標籤資訊

剛學到 rails 的 tagged logging。你知道可以用下面的方式為 log 加上標籤嗎

vimOctober 13, 2020

在 VIM mapping 中使用大寫字母

注意:@joe 這解決了你的問題 :D

macosOctober 13, 2020

用 FFmpeg 和 Apple Script 壓縮影片

打造一個可以把影片拖放上去、大幅壓縮影片的應用程式:

shellOctober 13, 2020

用 `host` 取得更多網域資訊

你可能會用 dig 從 DNS 伺服器查詢網域的 A/CNAME/MX 等紀錄。但如果只是想快速看個概況,就用 host 吧:

ruby on railsOctober 13, 2020

在 collection JSON schema 中使用 minItems/maxItems

要讓你的 collection JSON schema 更可靠,請使用 minItems 和 maxItems,這樣你才能信任你的 API。

vimOctober 13, 2020

把 Neovim 當作 git difftool 使用

只要把這段貼進你的 ~/.gitconfig

shellOctober 13, 2020

使用 Git 的 aliases 功能

Git 允許你透過 config 在內部建立 alias。你的全域 config 應該位於 ~/.gitconfig

shellOctober 13, 2020

在 Github 上監看 CI 狀態

安裝了 Github 的 hub 之後,你可以像這樣取得目前 branch 的 ci-status:

rubyOctober 13, 2020

FactoryBot 也可以用在非 ActiveRecord 的 model 上

你可以用 FactoryBot 的 initialize\with* 方法,以任何你想要的方式初始化物件,讓你能隨心所欲地為任何物件建立 factory

shellOctober 13, 2020

列出檔案樹的 Zsh function

在命令列瀏覽目錄時,若能以「tree」格式查看目錄與子目錄的結構,通常會很有幫助。雖然已經有很多現成工具,例如…

有專案構想嗎?

我們很樂意聆聽您正在打造的產品。

開始對話hello@oozou.com
OOZOU Logo

曼谷 · 新加坡 · 香港

X
Facebook
Instagram
LinkedIn

服務

  • Web 開發
  • AI 代理人與生成式 AI
  • 行動應用開發
  • 數據分析與工程
  • UI/UX 與產品設計
  • 數位轉型

公司

  • 關於我們
  • 職涯
  • 部落格
  • 案例研究
  • Today I Learned
  • 聯繫我們

更多

  • 產業
  • 合作夥伴網絡
© 2026 OOZOU. 版權所有。
隱私政策行為準則反賄賂反貪腐政策