コードを書いた。
copy_me.sh
を用意している ので、好きな関数名 (eg. hiwari
) をつけて その年の月数を渡してあげると「営業日」「日割り額」を出力してくれる
hiwari 6 # 今年 (2024年) 6月の日割り額が知りたい 営業日: 20日 日割り額: 30,000円
コードを書いた。
copy_me.sh
を用意している ので、好きな関数名 (eg. hiwari
) をつけて その年の月数を渡してあげると「営業日」「日割り額」を出力してくれる
hiwari 6 # 今年 (2024年) 6月の日割り額が知りたい 営業日: 20日 日割り額: 30,000円
dotnet run --configuration Release
paiza ラーニングの Haskell 問題集 を進めていて、FizzBuzz 回答まで到達できたので記録
パターンマッチングと mapM_
を活用した関数合成で解くことができた
-- 関数定義 isFizzBuzz n = (isFizz n) && (isBuzz n) isFizz n = (n `mod` 3) == 0 isBuzz n = (n `mod` 5) == 0 fizzBuzz n | isFizzBuzz n = "FizzBuzz" | isFizz n = "Fizz" | isBuzz n = "Buzz" | otherwise = show n -- メイン main = do -- FizzBuzz のパターンマッチングと その結果を `putStrLn` で標準出力に出す mapM_ (putStrLn.fizzBuzz) [1..100]
asdf を使うと、たとえば Vim とか サクッといろいろインストールできる
でも通常は「-clipboard」になるから「+clipboard」にするためには 準備が必要かも
(※ vim --version|grep clipboard
で拡張機能が有効化されているか否かを確認できる)
あといろいろカスタムインストールしたい
libxt-dev
をインストールするapt
コマンドを叩く
sudo apt update sudo apt install libxt-dev
次の ShellScript を実行する
#!/bin/sh # ASDF 経由で Vim のビルドに使うオプションを設定 ASDF_VIM_CONFIG="\ --with-x=yes \ --enable-cscope \ --enable-fail-if-missing \ --enable-fontset \ --enable-gpm \ --enable-gtk2-check \ --enable-multibyte \ --enable-perlinterp=dynamic \ --enable-python3interp=dynamic \ --enable-rubyinterp=dynamic \ --enable-terminal \ --with-compiledby=asdf \ --with-features=huge \ --with-tlib=ncurses \ " \ asdf install vim latest # 最新版をインストール asdf global vim latest # インストールしたヤツを使う # 機能確認用 (ここが実行されたらバージョン確認, `/clipboard` で拡張機能の状態を確認する) if ! command -v vim &> /dev/null; then vim --version | less fi
「デフォルトで渡されるオプション」は GitHub 上で確認できる
これで足りなかったり削りたかったりがあれば、上のようにオプション設定をしてあげるとよい
brew install gitsh
や pkg_add gitsh
とかはサポートされてるけど、Ubuntu では gitsh を「コマンドひとつで簡単にインストール」する方法が用意されていない
ソースコードからバイナリを生成してインストールをする (configure
と make
)
wget
, tar
)configure
で構成設定make
でバイナリ生成とインストール記事を書いている時点では v0.14 が最新なので、タグ情報から v0.14 のページ を表示させる
tar.gz ファイルを wget でダウンロードする
cd ~ # ホームディレクトリに移動 # ダウンロード wget https://github.com/thoughtbot/gitsh/releases/download/v0.14/gitsh-0.14.tar.gz # 展開 tar xzf gitsh-0.14.tar.gz
configure
で構成設定先ほどダウンロードと展開をしたディレクトリに移動 (cd gitsh-0.14
) して、設定をしていく
INSTALL ファイルにもインストール方法が書かれているので参考にする
# HINT: ./configure --help で 設定可能なオプション一覧が見られる # 1. バージョン管理ツール (`rbenv`, `anyenv`, etc...) を使ってる場合、Ruby の PATH が通常と異なる場合があるので RUBY オプションをつかう # 2. /usr/local/bin など管理者権限が必要な場所にインストールしたくない ...自分だけで使いたい... ので --prefix 指定をする RUBY="$(which ruby)" ./configure --prefix="~/.local"
make
でバイナリ生成とインストールあとはインストールするだけ
make && make install
gitsh
を叩いて起動するか確認する
1Password が SSH キーを管理できる ので、それを WSL 上でも可能にする
今回の対象は GitHub で、通信テストをして成功すれば OK
go install github.com/jstarks/npiperelay@latest
# → C:\Users\__my_user_name__\go\bin\npiperelay.exe
今度は WSL 上で操作
sudo apt install socat
引き続き、WSL 上。
NPIPE_RELAY_EXEC_PATH
には、Windows 側でインストールした PATH を、Ubuntu 側から参照できる形の PATH として記述する
# Configure ssh forwarding export SSH_AUTH_SOCK=$HOME/.ssh/agent.sock # need `ps -ww` to get non-truncated command for matching # use square brackets to generate a regex match for the process we want but that doesn't match the grep command running it! NPIPE_RELAY_EXEC_PATH="/mnt/c/Users/__my_user_name__/go/bin/npiperelay.exe" ALREADY_RUNNING=$(ps -auxww | grep -q "[n]piperelay.exe -ei -s //./pipe/openssh-ssh-agent"; echo $?) if [[ $ALREADY_RUNNING != "0" ]]; then if [[ -S $SSH_AUTH_SOCK ]]; then echo "removing previous socket..." rm $SSH_AUTH_SOCK fi echo "Starting SSH-Agent relay..." (setsid socat UNIX-LISTEN:$SSH_AUTH_SOCK,fork EXEC:"$NPIPE_RELAY_EXEC_PATH -ei -s //./pipe/openssh-ssh-agent",nofork &) >/dev/null 2>&1 fi
Windows 上で操作。
設定を終えたら、Windows 側で 一度 WSL をシャットダウンする
wsl --shutdown
もういちど WSL (Ubuntu) を起動してみると、~/.bashrc
に記述したとおり、echo
で文字列が出力されるようになるはず
ssh のテスト接続で、Windows, Ubuntu どちらも 1Password が介入してくるはず
ssh -T git@github.com
ssh -T git@github.com
Power Automate を用いて自動化処理をしているが、操作対象としているアプリケーションのウィンドウ位置が原因で、上手く動かないことがある。
これを直したい
外部ツールとして「ウィンドウ位置記憶プログラム (VbWinPos)」を用いる
適当なディレクトリにインストールして、操作対象としているアプリケーションのウィンドウを捕捉・記録しておく (設定を終えるとアプリケーション終了時、 *.ini ファイルに記録してくれる)
このとき、「一括セット」のチェックボックスを有効化しておく。(あとの自動化を楽にするため)
おおまかな やること:
「システム - アプリケーションの実行」から、アクションを持ってくる
「アプリケーション パス」に VbWinPos の実行ファイルがある場所を指定する
「システム - プロセスを待機する」から、アクションを持ってくる
「プロセス名」には「VbWinPos」を設定する
「マウスとキーボード - マウスを画像に移動」から、アクションを持ってくる
「マウスの移動先の画像」では、VbWinPos の「座標セット (S)」ボタンを指定する
「マウスとキーボード - マウス クリックの送信」から、アクションを持ってくる
「送信するマウス イベント」では、「左クリック」を指定する
「システム - プロセスを終了する」から、アクションを持ってくる
「プロセスの指定方法」は「プロセス名」を指定し、「プロセス名」では「VbWinPos」を設定する