2025-03-25
- 以下の三つについて紹介しつつ、ぼくの信じる主張をする
- how to design programs
- a philosophy of software design
- di: これについては良い書籍を思いつかなかった、気持ちは以下からえている
- インターフェース設計
- unixというかパイプ、gatherじゃないけどあのschemeの書籍に書いてあったアレみたいな原則
- mock
- 逆数学
- 取り回しやすい、仮説と結論の関連付けをする含意
- effect system
- type class
fishで設定ファイルを一発で開くコマンドを書いた。導入したてのツールだとこまめに設定ファイルを編集したい。わざわざ.confgまで行ってあれこれするのが面倒なので、このコマンドを使うと幸せ。
function conf --description 'この関数にハードコードした設定ファイル一覧からをfzfで選択してEDITORで開く'
set -q EDITOR; or set EDITOR vim
# パスはfishの組み込みによって解釈される
# 相対パスに解釈される場合はXDG_CONFIG_HOMEを常に基点として扱う
set -l configs \
'fish/config.fish' \
'fish/functions/conf.fish' \
'~/.local/fish/init.fish.secret' \
'ghostty/config' \
'git/config' \
'nvim/init.lua'
# 名前一覧をfzfで表示
set -l selected_path (
printf '%s\n' $configs | fzf --prompt="Edit config> "
)
test -n "$selected_path"; or return
# パス展開(~など対応)
# https://fishshell.com/docs/current/cmds/path.html#normalize-subcommand
set selected_path (path normalize "$selected_path")
# 絶対パスでないならXDG_CONFIG_HOMEを前置
if not string match -q --regex '^/' $selected_path
set selected_path "$XDG_CONFIG_HOME/$selected_path"
end
# ファイルの存在確認をしてエディターを起動
if test -f "$selected_path"
$EDITOR "$selected_path"
else
echo "Config file not found: $selected_path"
return 1
end
end