アクティビティ (今までの走行 (歩行) 距離)
Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている。色が濃くなれば濃くなる程強度が高い (歩行、走行距離が長い) ということで。実装の詳細はこちら。
ジョギング
ランオフ。ダラダラ過ごしつつ、TV を見ながら補強をやったり、ストレッチをやったり。
レアジョブ
明日、9:30 から予約を入れている。
夕飯
今日も居酒屋「自分勝手」 (適当に冷蔵庫のあまりものでつまみを作って、作りながら飲む) だった。引き続き、奥さんは体調を崩してしまっているので、おかゆを作って食べてもらった。
dagger
CI/CD がどこでも実行出来るという触れ込みで最近リリースされた dagger を半日くらいチュートリアルしてみた。
全てが Docker コンテナ上で実行することで、そのポータビリティ性が非常に魅力的で、各種 CI/CD ベンダーの環境以外にもローカル環境でも実行出来るというのは嬉しいと思う。
しかし、自分が dagger を使ってやりたいなーと思っていた terraform の各種コマンドの実行を cue を使って書いていて、「あれ、これは make コマンドでもよくね?」という気持ちが芽生えてきた。
半日くらい https://t.co/aruXnzHfyZ をチュートリアルしてみましたが、細かい手順がコードに落とし込めて、短いコマンドとして実行出来るという観点からすると、「あれ、make コマンドに似ているなー」というのがファーストインプレッションです。
— Yohei Kawahara(かっぱ) (@inokara) 2022年6月5日
もう少し、make コマンドと比較しての優位性等について探す旅を続けたいと思う。
ちなみに、以下は terraform の各種コマンドの実行を落とし込んだ dagger で実行可能なコード。
package main import ( "dagger.io/dagger" "dagger.io/dagger/core" "universe.dagger.io/alpine" "universe.dagger.io/bash" "universe.dagger.io/docker" ) dagger.#Plan & { actions: { source: core.#Source & { path: "." exclude: [ "*.cue", "*.md", ".git", ] } deps: docker.#Build & { steps: [ alpine.#Build & { packages: { bash: {} git: {} curl: {} } }, docker.#Copy & { contents: client.filesystem.".".read.contents dest: "/work" }, bash.#Run & { workdir: "/work" script: { contents: #""" git clone https://github.com/tfutils/tfenv.git ~/.tfenv ln -s ~/.tfenv/bin/* /usr/local/bin tfenv install """# } }, ] } validate: bash.#Run & { input: deps.output workdir: "/work" script: { contents: #""" terraform validate """# } } plan: bash.#Run & { input: deps.output workdir: "/work" script: { contents: #""" terraform plan """# } } apply: bash.#Run & { input: deps.output workdir: "/work" script: { contents: #""" terraform apply -auto-approve """# } } } client: { filesystem: ".": { read: { contents: dagger.#FS } } env: { TEST_VALUE: string | *"barbarbar" } } }