23時に寝て2時に起きて6時に起きた。

シェルスクリプト再考

久しぶりにシュルスクリプトを書いていて、ユーティリティ関数をうまいこと実装できないかを調べていたら nameref という仕組みが bash 4.3 以降で使えるらしい。私の bash 環境は 5.0.17 なので、bash 5 以上という制約にしてしまってもよいだろうと思う。例えば、こんなことができる。シェルスクリプトで split を実装するの面倒よね。

function split() {
    local -n arr="$1"
    local values="$2"
    local sep="${3:-,}"
    IFS="${sep}"
    read -a arr <<< $(echo "$values" | tr -d '[:space:]')
}

function test() {
    split mylist "a, b, c"
    echo "'${mylist[0]}'"
    echo "'${mylist[1]}'"
    echo "'${mylist[2]}'"
}

実行結果。ちょっと感動した。

$ test
'a'
'b'
'c'

bizpy 勉強会

Python で機械学習の前処理をやってみる勉強会 を開催した。今回も講師をわたなべさんにお願いした。私が余裕なくて全くなにもできていない。運営が2人いるとすごく助かる。今回は機械学習の前処理に着目して pandas や scikit-learn を使って実際にどういったプログラミングをするかを解説してもらった。Colab を使ってデモするのがいまどきのやり方なのかな?私は全く触ったことがないけど、そういうやり方の違いも含めて関心をもてた。Colab 上で普通に git コマンドも使えるのでリポジトリのクローンなんかもできる。次回は私もなにかしら発表をしたいなとは思う。いまのお仕事が一段落ついたら。