Carpe Diem

備忘録

Obsidianでチェックボックスを一覧化したい

背景

僕は通常Todoistでタスク管理をしていますが、小さな作業はThino(旧Memos)経由でデイリーログにチェックボックスとして追加します。
例えば「後で読む」みたいなやつです。

しかしながらその日中に終わらなかったタスクは忘れ去られてしまいがちです。

なので複数のノートをまたいでチェックボックスを一覧化する方法を模索しました。

環境

  • Obsidian v1.5.12
  • Checklist v2.2.13
  • Cardboard v0.7.9
  • Dataview v0.5.66

方法

a. Checklistプラグインを使う

Checklistというプラグイン#todoというタグを付けると、そのファイルの中にあるチェックボックスを次のように一覧化してくれます。

続きを読む

ConfigMapでYAMLファイルを管理する

概要

コンテナのポータビリティのため、設定値を環境変数で管理することは一般的ですが、

  • 細かいパラメータを一括で管理したい
  • 改行を含むが、base64エンコードせずそのままの方が視認性が高く運用しやすいデータがある
    • PEM、PGPの公開鍵など

といった際にYAMLで管理すると便利です。

KubernetesではConfigMapがあるためそれを使ってYAMLファイルをマウントします。

環境

対応方法

以下のような設定値をYAMLで管理するとします。

---
params: 
  endpoint: example.com
  timeout: 10s
  retry: 3
key: |-
  -----BEGIN PUBLIC KEY-----
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7v6LsXjyw...
  -----END PUBLIC KEY-----
続きを読む

Slack Botでアイコンをメッセージごとに変更したい

背景

  • slack botが投稿するメッセージによって伝えたい内容が異なるため、アイコン(アバター)をそれぞれ変えたい
  • けれどslackアプリはたくさん管理するのは大変

という状況の時に、1つのslackアプリでもメッセージ投稿でアイコンを変更する方法について紹介します。

環境

あらかじめslackアプリを用意しておきます。

見ての通りデフォルトのアプリアイコンには猫を設定しています。

続きを読む

CELでカスタム関数を使う

概要

CELは標準的な演算子や関数に加え、独自のカスタム関数を定義して機能を拡張することが可能です。

今回はカスタム関数を使ってみる際に必要な前提知識を踏まえながらサンプルコードを紹介します。

環境

  • go v1.22.1
  • cel-go v0.20.1

カスタム関数の作り方

Goでの実装になりますが、手順としては以下です。

  1. environmentに関数を登録
  2. bindする関数を定義(interfaceを実装する)
  3. 評価式で関数を使う
続きを読む

CELで独自のオブジェクトをprotobufを使って変数定義する

概要

CELでは評価式で扱う変数をEnvironment内で定義しますが、既存のデータモデルを使いたい場合は

  • 同じ定義を都度作らないといけない
  • 変更があった際の追従漏れが発生する

といった手間が発生してしまいます。

しかしそのデータモデルがprotobufで定義されていれば再利用することが可能です。

今回はその方法を紹介します。

環境

  • go v1.22.1
  • cel-go v0.20.1
続きを読む