rengotaku

macOS の Background Items 表示名は plist の ProgramArguments で決まる

macOS「システム設定 → 一般 → ログイン項目と機能拡張 → バックグラウンドでの実行を許可」に表示される名前は、plist の Label ではなく ProgramArguments[0] の basename から取られる ProgramArguments[0] を /bin/zsh にして第二要素にスクリプトを渡すと、表示名は「zsh」に丸め込まれて識別不能になる スクリプトに sh…

SKILL.md の決定的処理はシェルに任せる

Claude にファイル探索や有無判定を「自然言語の指示」で任せると、似た名前のファイルを巻き込んで読んでしまう 決定的に判定できる処理は test -f などのシェルコマンドに移譲し、echo で次にやるべき指示文を直接返す SKILL.md の手順は「決定的処理(スクリプト)」と「判断・生成(Claude)」に分けて記述すると迷いが減る

CLAUDE.md に細かいコーディングルールを全部書くのはアンチパターン

CLAUDE.md はセッション中 毎ターンプロンプト先頭に積まれる ので、細かい規約を全部書くとトークンを毎回払う トークン以上に深刻なのは アテンションが薄まる こと。長くなるほど一行一行の効きが弱くなり、肝心の禁止事項が守られなくなる 長セッションでは CLAUDE.md も コンパクションで要約に巻き込まれて潰れる 。…

稼働中バイナリを差し替えるときの atomic rename パターン

稼働中の ELF バイナリに cp で上書きすると Text file busy (ETXTBSY) で失敗する 一時ファイルに書き出して mv -f で差し替える atomic rename で回避できる rename(2) はディレクトリエントリだけを書き換え、古い inode は実行中プロセスが使い続ける Rails で同じ問題に遭遇しなかったのは Capistrano の symlink…

HTTPSでドメインを公開すると即座にボットに発見される仕組みと対策

HTTPS証明書を発行すると CT Log(証明書透明性ログ) に即座に記録され、誰でも検索できる 攻撃者はcertstreamでCT Logをリアルタイム監視しており、証明書発行から数分以内にスキャンが来る 開発・ステージング環境はBasic認証+IP制限で守る。本番はWAF サブドメイン名を隠すにはワイルドカード証明書。…

AWS SES サプレッションリストによるメール未着を調査・解消した

SES のサプレッションリストはリージョンごとに独立している。正しいリージョンを確認すること Hard Bounce が発生すると SES がアドレスを自動的にサプレッションリストに登録し、以降の送信がすべてブロックされる サプレッションリストから削除してもブロックされたメールは再送されない。手動で再送が必要

マネーフォワードGitHub流出事件を読み解く — なぜ起きたのか、どう防ぐか

ソースコードへの認証情報ハードコードと本番データのテスト流用は「当時は正解だった判断」が組織の成長とともにアップデートされなかった結果 削除済みファイルも git log -p で復元できる。リポジトリをクローンされると歴史ごと盗まれる セキュリティ問題は「人の意識」ではなく「機械的ブロック」で防ぐ設計が必要 GitHub の Push Protection は無料で今日から有効化できる

誤って commit した重いファイルを git 履歴から除去してリポジトリを軽量化する

重いファイルを履歴から消すには git filter-repo が現代の標準 必ずバックアップ → 実行 → force-push → gc の順 全 commit の SHA が変わるので共同作業者・PR 参照に注意 private リポ・単独作業なら影響範囲が限定的で実行しやすい 完全削除はホスティング側の GC を待つかサポート依頼

トレンドのタグ