Carpe Diem

備忘録

Bitwardenでsshキーを管理する(2025年最新版)

背景

以前次のようにライブラリを利用して、Bitwarden上でsshキーを管理するやり方を紹介しました。

christina04.hatenablog.com

2025年1月からに公式もsshキーをサポートしていたので、公式のやり方を紹介します。

環境

  • macOS(M2) v15.7.2
  • Bitwardenデスクトップ v2025.11.2

注意点

  • サポートしているアルゴリズムはed25519のみ
    • rsaecdsaは対応していない
  • インポートはできるがサポートしているアルゴリズムは同上
続きを読む

bash-completion@2 の設定ファイルの置き方

背景

ツールの補完を使う上でcompletionファイルの管理が必要です。

ただ生成AIやネット上ではbash-completionのv1なのかv2なのか情報が混ざっており、よく分からないことがあったので自分で整理することにしました。

環境

  • macOS v15.7.2
  • bash v5.3.8
  • bash_completion v2.17

bash-completion@2の使い方

bashの設定

Macではライセンスの関係からデフォルトではbash 3までしか使えません。
(3.2 までのライセンスが GPLv2、4.0 から GPLv3 なため)

なので使う場合は自前でbrewからインストール&デフォルトシェルの設定が必要です。

$ brew install bash
続きを読む

Claude Codeの権限設定ルール

背景

Claude Codeの権限の設定は自動化による効率化とリスクのガードレールを設計する上で非常に重要です。

{
  "permissions": {
    "allow": [
      "Bash(find:*)",
      "Bash(grep:*)",
      "Bash(ls:*)",
      "Bash(cat:*)",
      "Read(~/.go/src)"
    ],
    "deny": [
      "Read(**/*env*)",
      "Read(node_modules)",
      "Bash(rm -rf:*)"
    ]
  }
}

一方で独自のパターンマッチングのルールがあったり、デフォルトの挙動が分からなかったりすると設定しているはずなのに期待通りに動かないことがあります。

今回は権限設定のルールを改めて確認するための説明です。

環境

  • Claude Code v2.0.45

ツールと権限

Claude Codeはプロジェクトルートにおいては基本的に参照系はデフォルトで権限が付いています。

続きを読む

glob によるパターンマッチング

概要

glob はファイルシステムディレクトリ内の名前(パスなど)に対するパターンマッチングです。

身近な例で言うと.gitignoreなどがglobを使っています。
最近だとClaude Codeの権限管理であるRead()もこれを利用しています。

globは正規表現とごっちゃになりやすいのでまとめておきます。

構文

glob の構文は以下ですが、主に *? を使います。

メタ文字 説明 パターン例 OK NG
* 任意の数の任意の文字に一致(0文字を含む) Law* LawLaws、 またはLawyer GrokLawLa、 またはaw
? 任意の1文字に一致 ?at CatcatBatまたはbat at
[abc] 括弧内の1文字に一致 [CB]at CatまたはBat catbatまたはCBat
[a-z] 括弧内に指定された範囲(ロケール依存)の1文字に一致 Letter[0-9] Letter0Letter1Letter2までLetter9 LettersLetterまたはLetter10
続きを読む

Notionの議事録の主要トピックをまとめる

概要

Notionでデータベースに議事録を残す事はよくありますが、どこにどんな内容が書いてあったかを一覧の状態で見たいことがあります。

そこでNotion AIを使って一覧にできるようにする方法を紹介します。

方法

データベースを作成してる前提で、まずはプロパティテキストを選択して追加します。

続きを読む

Data Clean Room によるプライバシー保護と効果測定の両立

課題

従来広告の効果測定は、主にCookieやIPを使って以下の様にデータを突合していました。

しかしながら最近はプライバシー保護のためGDPRなどによってCookieレスが進んだり、これまでメディア(媒体)から連携されていたIPも連携されないような流れが出てきました。

これにより適切な広告効果が計測できない課題が生まれています。

そこでプライバシーを保護しつつ、効果計測もできるようにするソリューションがData Clean Roomです。

続きを読む

proto-gen-validate を使う

概要

HTTPやgRPCなどのAPIでvalidationを実装する際、次のような課題に直面することがよくあります。

  • validationの実装を忘れる
    • 正常系だけを考え、異常系のイメージがない
  • validationがどこに実装されているか分からない
    • クライアント側との認識がずれたり、テスト漏れが起きやすい
  • validationをどこに実装するか悩む
    • オニオンアーキテクチャでいう「インフラ層・ユースケース層・ドメイン層」のどこに置くべきか、チーム内で議論になりがち

もしProtobufを使ってAPI定義を行っている(スキーマ駆動開発)なら、validationの責務もProtobuf側に寄せてしまうという設計が有効です。

この記事では、そのためのツールである proto-gen-validate を使い、Protobufスキーマでvalidationを定義・自動生成する方法を紹介します。

環境

  • proto-gen-validate v1.2.1
  • Go 1.25.1
続きを読む