第63回シェル芸勉強会 大阪サテライト レポート
2/25(土) に開催された、第63回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
大阪サテライトの様子
この辺です #シェル芸 #大阪 pic.twitter.com/0c9hIepnBw
— so (@3socha) 2023年2月25日
大阪サテライト会場におじゃましました(よろしくonegaisimas#シェル芸
— かえる㌠🐸 (@gho4d76g) 2023年2月25日
正規表現は初めてなのでドキドキ💦😂
— taka@SIではたらくフレンズ (@amanoese) 2023年2月25日
今回も初めてのシェル芸勉強回がんばります💪💪💪
今日はドキドキシェル芸勉強会!緊張するなあ!がんばります!#シェル芸
— たいちょー (@xztaityozx_001) 2023年2月25日
今回大阪サテライトは、4名の方に参加していただきました。 東京会場が久々の現地開催だったのですが、上田先生が参加者の反応や様子を確認しながら進められていたようで、いつもの様子が戻ってきたなという、ちょっとした安心感がありました。 大阪では、YouTubeの配信にTwitterでツッコミを入れつつ、参加者同士で解き方を共有しながら問題に取り組んでいました。
今回個人的に勉強になったのは問題3の解き方で、uniq
コマンド-s
や-f
オプションで、先頭の文字やフィールドを読み飛ばして比較できるというものでした。
これは覚えて使いこなせるようになりたいです。
uniq
— so (@3socha) 2023年2月25日
-s, --skip-chars=N
最初の N 文字を比較しない
-f, --skip-fields=N
最初の N 個のフィールドを比較しない
なるほどなー、便利 #シェル芸
おやつタイム
!? #シェル芸 #たのしいおやつタイム pic.twitter.com/uGooIOyOaV
— かえる㌠🐸 (@gho4d76g) 2023年2月25日
大阪会場でいただいた「トイレの最中」
— taka@SIではたらくフレンズ (@amanoese) 2023年2月25日
噂には聞いていたけど、袋に入った餡を自分で捻り出して、便器状の枠に入れるとは聞いてなかった
味は美味しいかったんですが……その…#シェル芸 pic.twitter.com/czLU71rgW2
便器型のもなかをバリボリと食すシェル芸人たち。
LT
1件の発表をしていただきました。
たいちょーさんの音声データを自由に組み合わせられるエンドポイントを不用意に公開してしまうと、やっぱりシェル芸人のオモチャになってしまいますね。 発表ありがとうございました。
おわび
シェル芸を実行する環境として、募集ページには
UNIX 環境のあるノート PC(Mac・Windowsでも可) ※Windows で参加している人もたくさんいますのでご安心ください。 (WSL・Docker・Cygwin・MSYS2・Git bash・Bash on Windows・Chromebook など)
と記載したままずっと変更していなかったのですが、Git Bashでは問題リポジトリの取得ができないと報告がありました。
warning: Clone succeeded, but checkout failed.#シェル芸 pic.twitter.com/x2fVpqO2kW
— OTMV (@O_T_MagellanV_) 2023年2月25日
第33回の問題ファイルに、改行入りのパスが含まれており、それが Git for Windows(Git Bash)でうまく扱えないようでした。すみません。 次回の募集ページではこの表記を修正しておくようにします。
ちょっと試してみた
勉強会後に、Gitのスパースチェックアウトを使って、必要なファイルだけチェックアウトできないか試してみましたが、これはうまくいきませんでした。
別の方法として、curlでGitHubのAPIにアクセスして、必要なファイルだけ取ってくる方法を考えてみました。
別途Windows版のjq
コマンドをインストールする必要がありますが、この方法であれば必要なファイルだけ取得することができると思います。Git LFSには対応しないと思いますが。
$ curl -s https://api.github.com/repos/ryuichiueda/ShellgeiData/contents/vol.63 | jq -r '.[] | "curl "+.download_url+" -o "+.name' | sh
あるいは、GitHubにはリポジトリのZipアーカイブを生成してダウンロードする機能があるので、こちらを利用する方が楽で良いかもしれません。
$ curl -sL https://github.com/ryuichiueda/ShellGeiData/archive/refs/heads/master.zip -o ShellGeiData.zip
いくつかの方法を考えてみましたが、Git Bashにはパッケージマネージャーがなく、勉強会中に紹介されるコマンド類をインストールするのが難しいため、自身で環境を整備するのに慣れている玄人向きかなと思います。 Windows環境でシェル芸を試される場合は、WSL2上にUbuntu環境を用意していただくと、出題者の環境とほぼ同様になるため、トラブルが少なくて良いかなと思います。 GitでのShellGeiDataリポジトリのチェックアウトも、特に問題ありませんでした。
2/27 追記
CygwinのGitでは問題ないようでした。
Cygwin で配布されている git パッケージで git clone すると、エラー...しなかった! pic.twitter.com/PGsGxkxJkY
— ega-wave (@ega_wave) 2023年2月26日
くんすとさんによると、Gitのスパースチェックアウトに加えて、protectNTFS
機能を無効化することでチェックアウトできるようでした。
おわり
今回もご参加いただき、ありがとうございました。 また次回もよろしくお願いします。