第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
機能を無効化することでチェックアウトできるようでした。
おわり
今回もご参加いただき、ありがとうございました。 また次回もよろしくお願いします。
第62回シェル芸勉強会 大阪サテライト レポート
12/3(土) に開催された、第62回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
大阪サテライトの様子
今日はシェル芸勉強会に参加しています。2ヶ月間に一回TLにシェル芸をつぶやく日です。
— taka@SIではたらくフレンズ (@amanoese) 2022年12月3日
シェル芸に興味ある人はyoutubeのライブ動画見ながら問題の回答をついーとするだけなので、参加してみてね✨✨✨https://t.co/jt0xsKanQS
前々回は京都でサテライト開催しましたが、大阪でのサテライトは2020年2月に開催された第46回以来、3年弱ぶりの開催となりました。 今回大阪サテライトの参加者は3名で、いずれも複数回参加されている方だったため、YouTube の配信を見て雑談しながら各々のペースで問題を解いていました。 最後の6問目以外は呻き声が上がることもなく、ちょいうど良い手応えだったかなと思います。
今回個人的に勉強になったなーと思ったのが、問題2の回答例で xargs -n 1 bash -c 'echo $0'
のように xargs から bash に渡された引数を位置パラメータとして参照しているところでした。
Man page of BASH より:
-c string
-c オプションが指定されると、コマンドが string から読み込まれます。 string の後に引き数があれば、これらは 位置パラメータ (positional parameter: $0 から始まるパラメータ) に代入されます。
パイプを通して受け取った文字列を xargs
で後続のコマンドに渡したいときは -I
オプションを使えば良いやとずっと考えていたため、こんなやり方もあるんだなあと新鮮でした。
-I replace-str
initial-arguments 中で文字列 replace-str が現れるすべての箇所を、標準入力から読み込んだ名前で置き換えます。 なお、標準入力中にクォートされていない空白があっても、 それは入力項目の区切りにはなりません。 区切り文字は改行文字だけになります。 -x と -L 1 の指定を暗に含みます。
注意して使い分ければ、今までちょっと困っていたケースのいくつかが解決できそうな気がします。
LT
2件の LT 発表をしていただきました。
シェル芸 LT 始めます #シェル芸 #大阪https://t.co/TILv58o7y4
— so (@3socha) 2022年12月3日
「デーモンスレイヤー ワタナベ」 - たいちょーさん github.com
「魔術式シェル芸」 - takaさん speakerdeck.com
YouTube での録画には入っていませんが、この後 Discord での質疑応答も行われていました。 まるでゼミ発表のよう。
このあと、参加者で近くの居酒屋に行って 2 次会をしていたのですが、各地の渡辺ゆかりの場所やルーン文字研究の話が聞けて、とても興味深かったです。 紹介された本をちょっと読みたくなってしまいました(また積み本が増える)。
おわり
今回も楽しく、とても学びのある勉強会でした。 会場に集まれると、問題の解き方のアプローチを隣の人に相談してみたり、一緒に頭を抱えたりできるのが良いですね。
シェル芸勉強会は今回で10周年だそうです。 いつも参加・運営していただいているみなさま、ありがとうございます。 参加者と一緒に、毎回少しずつ学びを増やしていけたら嬉しいです。
第46回シェル芸勉強会 大阪サテライト レポート
2/14(土) に開催された第46回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
福岡はお休み。
あと今回は箱根でもサテライト会場が開かれたようです。楽しそう。
箱根サテライトの様子です(皆さんお手上げのご様子…)。 #シェル芸 pic.twitter.com/KnCTqjmcAc
— Hisatoshi Onishi (@hisa0211) 2020年2月15日
今まで ATND で募集ページを作成していましたが、4月にサービス終了になるようなので、connpass に引っ越しました。 ATND の過去の募集ページも connpass に取り込みましたが、参加者などの情報は移せないようでした。 参加コメントの大喜利も消えてしまいますが、まぁシェル芸なんて書き捨てのものなので良いでしょう。
大阪サテライトの様子
東京会場では例年この時期は参加者数が減るそうですが、大阪は久々に募集人数を超える応募がありました。 あまり大人数になってしまうと、会場スタッフが確保できずにアタフタしてしまうので、今のところ募集枠の拡大は考えておらず、このくらいの人数でやっていければ良いなと思っています。 参加者10名中、4名の方が初参加でした。
ホワイトボードを使って Q8 の枝刈りをする様子。
ホワイトボード使ってみんなで考えてた #シェル芸 pic.twitter.com/SYkbQ3hoMC
— so (@3socha) 2020年2月15日
LT は無く、東京の様子を見ていました。
おわりに
アルゴリズム事典からの出題をシェル芸で解くということで、また知らない awk の使い方を学ぶことができました。 上田先生が冒頭に話されていましたが、普段使わない頭に、たまに負荷をかけて問題を解くのは面白いですね。
参加いただいた方、運営に協力頂いた方、そして主催の上田先生、ありがとうございました。 次回は4月頃ですかね。またよろしくお願いします。
シェル芸勉強会お疲れ様でした!
— taka@SIではたらくフレンズ (@amanoese) 2020年2月15日
駆け出しのシェル芸初心者で問題は全然解けなかったのですが、また参加したいです!#シェル芸
ダウトー。
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
— シェル芸bot (@minyoruminyon) 2020年2月16日
| 終 |
| 制作・著作 |
|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
| Ⓝ Ⓗ Ⓚ |
|_________|
∧∧ ||
( ゚д゚)||
/ づΦ https://t.co/FLkBJ3o13A
第45回シェル芸勉強会 大阪サテライト レポート
12/28(土) に開催された第45回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
午前の部
元々午前の部は予定されていませんでしたが、ぷる(@butackle66)氏が JavaScript の非同期処理について、ストリーミング配信で講義してくれました。
— ぷる (@butackle66) 2019年12月28日
シェルの世界とは異なり、JavaScript では GUI の様々デバイスや I/O を同時に安全に効率よく扱うため、シングルスレッドであったり、非同期処理という方法が提供されているんだと思います。 このような制約のある状況で処理することは普段あまりないので、聞いてていろいろ考えてみることになり、勉強になりました。ありがとうございます。
ぷる氏も講義中に話されていましたが、聞き手の直接の反応が見えない配信は、やっぱり結構不安になってしまいますね。 聞いている方はラジオ番組を聴きながら、同じ番組を聴いてるリスナーと Twitter でワイワイする感じで、結構良かったのですが。
大阪サテライトの様子
参加者は5名、うち3名が初参加でした。 初めましての方は、(いつものことですが)午後のシェル芸問題にほとんど手が出なかった模様。 普段から触ってないと難しいもんね...。
会場の WiFi の SSID とパスワードを QR コード生成ワンライナーで表示してみたのですが、あまり馴染みのない文字列で、初参加者には通じませんでした。残念。
twitter.com今日の会場 WiFi 案内、こんな感じで出しておいたけど全然わかってもらえなかった #シェル芸 pic.twitter.com/CC3JHRptYS
— so (@3socha) 2019年12月28日
LT
「シェル芸のおかげでUnicodeに怯えず楽しめるようになった話」 - taka(@amanoese)さん
twitter.com今日のLT資料です。https://t.co/HwOsRhqirv
— taka@SIではたらくフレンズ (@amanoese) 2019年12月28日
各プロジェクト?やプロダクト?は機会がある際に使っていただけると幸いです。#シェル芸
帰省先からリモートで発表していただきました。 発表で紹介された kana2ipa と、東京の LT で kanata さんが紹介された ivsteg は、早速シェル芸botに追加してもらいました。
「ワタナベシェル」 - たいちょー(@xztaityozx_001)さん
午後の勉強会の問題にもなっていた noc を入力にも出力にも使って完全 nabe 化されたシェル。 本人も読めてなかったよこれ。
配信メモ
OBS で配信してるんですが、macOS を Catalina にアップデートしてから、画面のキャプチャがうまくいかなくなっていました。 Catalina から、ウィンドウ・画面をキャプチャするアプリケーションに対して、個別にシステム設定から画面収録を許可しなければならなくなったようですが、OBS がアプリケーションの一覧に出てこなくて困っていました。
qiita.com にあるように、ターミナルから OBS を起動し、ターミナルに対して画面収録を許可することで、回避できました。 ただこれだと、ターミナルから起動する全てのアプリが許可されるようで、あまり良くない気もしますが。
おわり
年末の忙しい時期に、皆さん集まっていただき、ありがとうございました。 楽しいシェル芸納めができました。来年もよろしくお願いします。
X11シェル芸
この記事はシェル芸 Advent Calendar 2019 12日目の記事です。 当初 Qiita に投稿していましたが、こちらに引っ越しました。
X11シェル芸とは
X Window System(X11)上のGUIアプリケーションを操作するシェル芸です。 こんなやつ。
https://t.co/DGP40W3QKu pic.twitter.com/R5C2UJh0eE
— シェル芸bot (@minyoruminyon) 2019年8月18日
デスクトップ版のLinuxディストリビューションでxeyes
を実行すると、マウスカーソルを追いかける目玉のアプリケーションが動きます。
このようなGUIアプリケーションを、シェル芸botのような、デスクトップのない環境で実行しようというチャレンジです。
準備
Ubuntuで、以下のパッケージをインストールします。
- xvfb
- x11-apps
xeyes
などの楽しいX11アプリケーション詰め合わせ
- x11-utils
- X11環境を便利に使うツールのお得な詰め合わせ
- ここでは
xwininfo
を使う
- xdotool
- コマンドラインからマウス・キーボード・ウィンドウを操作するツール
- 第41回シェル芸勉強会のLTで@s_mituさんが紹介されていた
- imagemagick
- 画像処理なら任せろ
ウィンドウマネージャ等は必要ないので省きます。 Docker環境で試せるよう、Dockerfileを用意しておきました。
FROM ubuntu:19.10 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive \ apt-get install -y --no-install-recommends \ xvfb x11-apps x11-utils xdotool imagemagick \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
Dockerfile
というファイル名で保存し、次のようなコマンドでDockerイメージをビルドできます。
$ docker image build -t shellgeiadv .
Dockerコンテナを起動します。実行するGUIアプリケーションのスクリーンショットを出力するため、./images
をボリュームマウントしておきます。
$ docker container run -it --rm -v $(pwd)/images:/images shellgeiadv
仮想フレームバッファを準備する
この状態でxeyes
を実行すると、ディスプレイが開けねーぞって怒られます。そりゃあそうです。
# xeyes Error: Can't open display:
なので、Xvfbを使って、仮想的なディスプレイを用意してやります。
# Xvfb :1 -screen 0 320x240x8 & [1] 8
:1
はディスプレイサーバーの番号、-screen
はディスプレイサーバーに紐付くスクリーン番号(0
)の解像度(幅:320 x 高さ:240)x 色深度(8bit)の指定です。バックグラウンドで起動するため、&
を付けています。
こんな極小ディスプレイはほとんどないと思いますが、仮想ディスプレイなら簡単に作れちゃいます。
X11アプリケーションは、DISPLAY
変数に設定されたディスプレイサーバー番号にウィンドウを表示するため、Xvfbで作成した仮想ディスプレイの番号(:1
)を設定しておきます。
# export DISPLAY=:1
xeyesを実行する
こちらもバックグラウンドで実行しておきます。
# xeyes & [2] 11
ターミナルには何も表示されないため、動いているのかよくわかりませんが、ps
でプロセスを確認すると、ちゃんと動いているようです。
# ps PID TTY TIME CMD 1 pts/0 00:00:00 bash 8 pts/0 00:00:00 Xvfb 11 pts/0 00:00:00 xeyes 12 pts/0 00:00:00 ps
xwininfo
を使うと、仮想ディスプレイサーバーに配置されたウィンドウの位置が、なんとなくわかります。
# xwininfo -display :1.0 -root -tree xwininfo: Window id: 0x4d (the root window) (has no name) Root window id: 0x4d (the root window) (has no name) Parent window id: 0x0 (none) 1 child: 0x20000a "xeyes": ("xeyes" "XEyes") 150x100+0+0 +0+0 1 child: 0x20000b (has no name): () 150x100+0+0 +1+1
画面をキャプチャする
xwd
(X Window System window dumping utility)を使って、ディスプレイのスクリーンキャプチャを取得することができます。
XWD形式のフォーマットで出力されますが、ImageMagickのconvert
で処理することができます。
# xwd -display :1 -root | convert xwd:- /images/xeyes.png
Dockerホストの./images/xeyes.png
に次のような画像が生成されていると思います。
ウィンドウを操作する
xdotool
を使ってウィンドウを移動してみます。xdotool
でウィンドウを操作するには、ウィンドウIDを取得する必要があります。先のxwininfo
より、xeyes
のウィンドウIDは0x20000a
と表示されましたが、環境によって変わる可能性があるため、xdotool search
を使って、ウィンドウ名で検索した結果を利用します。
# xdotool search --name xeyes 2097162
xeyes
のウィンドウサイズは、先のxwininfo
より、150x100となります。
また、xdotool
で次のように取得することもできます。
# xdotool getwindowgeometry 0x20000a Window 2097162 Position: 0,0 (screen: 0) Geometry: 150x100
これらの座標を元に適当に計算し、ウィンドウをディスプレイの中心に配置してみます。
# xdotool search --name xeyes | xargs xdotool getwindowgeometry | awk -F'[x ]' 'NR==1 {printf $2" "} NR==3 {print (320-$4)/2, (240-$5)/2}' | xargs xdotool windowmove
スクリーンキャプチャを取得してみると、寄り目が現れます。
# xwd -display :1 -root | convert xwd:- /images/xeyes_center.png
シェル芸botで実行する
ここまでの内容を、適当にスクリプトとして実行します。バックグラウンドで動作するコマンドを連続して実行すると、前のコマンドの実行が間に合わないことがあるため、適当にsleep
を挟んでおくと良いでしょう。
Xvfb :1 -screen 0 320x240x8 & sleep 1 export DISPLAY=:1 xeyes & sleep 1 xdotool search --name xeyes \ | xargs xdotool getwindowgeometry \ | awk -F'[x ]' 'NR==1 {printf $2" "} NR==3 {print (320-$4)/2, (240-$5)/2}' \ | xargs xdotool windowmove & sleep 1 xwd -display :1 -root | convert xwd:- /images/x.png
シェル芸botは、バックグラウンドプロセスが動きっぱなしでも実行結果ツイートしてくれますが、SGWebで実行する場合は、バックグラウンドプロセスも終了させておく必要があるため、timeout
コマンドで指定秒数後に停止するよう仕込んでおくと良いでしょう。
timeout 5 Xvfb :1 -screen 0 320x240x8 & sleep 1 DISPLAY=:1 timeout 3 xeyes & sleep 1 xdotool search --name xeyes \ | xargs xdotool getwindowgeometry \ | awk -F'[x ]' 'NR==1 {printf $2" "} NR==3 {print (320-$4)/2, (240-$5)/2}' \ | xargs xdotool windowmove & sleep 1 xwd -display :1 -root | convert xwd:- /images/x.png
おわりに
シェル芸botでxeyesを表示するだけではあまり面白くないですが、GUI環境をコマンドラインから扱えると、ちょっと嬉しいことがあるかもしれません。たとえば、GUIアプリケーションをデスクトップに並べてパズルとして遊ぶとか。そういえば昔、LinuxサーバーにXvfbとLibreOfficeを入れて、sofficeコマンドを使ってヘッドレスでOfficeドキュメントをPDFに変換していたこともありましたね。そんな感じで、GUI環境もコマンドラインから扱えると、作業が捗りそうです。 楽しいシェル芸ライフを。
第44回シェル芸勉強会 大阪サテライト レポート
10/26(土) に開催された第44回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
今回松江はお休み。 1年ぶりに福岡サテライトが開催されました。
大阪サテライトの様子
参加者は4名、いつも参加されているメンバーでした。
久々の午前の部はぷる氏による JavaScript のオブジェクトについての講義。 個人的にはとても苦手意識のある JavaScript について解説していただきました。 JavaScript がこんなにややこしい仕様になっているのは、長い歴史の積み重ねがあるからでしょうか...?
— 次郎☁️[00:32:46] (@jiro_saburomaru) 2019年10月26日
講義中、いつもはうんこばかり流れているシェル芸タイムラインに、とても有用な情報が流されていました。 講師からの一方向のお話ではなく、参加者皆の知見が集まるのは素晴らしいです。
午後の部の前半4問は、数独をシェル芸で段階的に解いていくものでしたが、2問目の難易度がとても高かったように思います。 行指向でデータを扱うため、前後の行にあるデータも利用できるように工夫することが求められているようでした。
LT
「-(横線)難読化シェル芸」 - MSRさん
Unicode には 64 以上もの横線が収録されているそうです。大体一緒だろ。
横線を利用した新たなエンコード手法と、その実装の horizon コマンドを提案されました。
「structured-text-tools の紹介」 - 小原 一哉さん
dbohdan/structured-text-tools にまとめられている構造化テキスト処理ツールの中から、3つをピックアップして紹介されました。
発表内では csvquote
のメリットが少し理解しづらかったのですが、後で調べてみてとても有用だなと思ったので、ついでに紹介してみます。
CSV では、"..."
(ダブルクォート) 内の ,
(カンマ) をフィールドセパレータとして、改行をレコードセパレータとして扱わないようですが、そのようなデータを、awk, sort, cut のような UNIX コマンドで扱おうとすると、少し困ります。
例えば、以下のようなデータを2フィールド目でソートしたい場合。
$ cat sample.csv unko,3 "u,nk,o",5 "un ko",2
csvquote を通すと、ダブルクォート内のカンマは 0x1f (US; ユニット区切り)、改行は 0x1e (RS; レコード区切り) に置換されます。
$ cat sample.csv | csvquote | xxd 00000000: 756e 6b6f 2c33 0a22 751f 6e6b 1f6f 222c unko,3."u.nk.o", 00000010: 350a 2275 6e1e 6b6f 222c 320a 5."un.ko",2.
この状態で sort を実行し、csvquote -u で置換された文字を元に戻すことができるようです。
$ cat sample.csv | csvquote | sort -t',' -k2n | csvquote -u "un ko",2 unko,3 "u,nk,o",5
ちょっと扱い辛かった CSV がとても扱いやすくなって良い感じです。
紹介された GitHub リポジトリには、他にも便利そうなツールがたくさん紹介されていました。
「柿と杮(かきとこけら)」 - たいちょーさん
かきとこけら。一緒だろ(2回目)。
柿 と 杮 でバイナリを表現する手法と、その実装の kakikokera コマンドを提案されました。 こけらと同じく、肺の字のつくりは市ではないそうです。 しらなんだ。
LT で紹介されたコマンド類は、早速シェル芸botに追加してもらいました 🙌
おわり
久々に終日の勉強会となりとても疲れましたが、学びの多い一日でした。 講師の方、LT発表された方、参加された皆さま、ありがとうございました。 次回は年末頃でしょうか。またよろしくお願いします。
第43回シェル芸勉強会 大阪サテライト レポート
8/10(土) に開催された第43回シェル芸勉強会 大阪サテライト会場の様子をレポートします。
案内
大阪サテライトの様子
シェル芸大学着いた!…と思ったら大学名違うじゃん!騙された! pic.twitter.com/rMyYKtCnFV
— taka@SIではたらくフレンズ (@amanoese) 2019年8月10日
今回はいつもの場所が利用できなかったため、大阪工業大学さんの教室をお借りして開催しました。 参加者は6名、うち1名の方が初参加でした。
大阪サテライトは全員初心者です #シェル芸
— MSR (@msr386) 2019年8月10日
全員初心者宣言をする大阪サテライト民。
勉強会前半の問題はけっこう解けている人もいたのですが、休憩を挟んで後半は難しかったです。 解き方のヒントになりそうなものは、シェル芸botのツイートでちらほら見たことがあるのですが、実際に手を動かして取り組んでいないと、ぱっと手段が思いつかないですね。
LT
今回も2つ発表していただきました。 どちらもとても面白くてヤバい発表だったので、是非動画で見てください。
録画
「難読化PowerShell芸入門」 - たいちょー さん
www.slideshare.net
シェルを触っていると難読化してしまう病気を患っているらしい、ゆるふわお嬢様系難読化シェル芸人さん。 今回は PowerShell での難読化について語っていただきました。
これが Get-Date だと。。。
— タニグチ (@sAFV4aJ7HGieNNz) 2019年8月10日
#シェル芸 pic.twitter.com/IdeTt2zIcE
料理番組のように「できましたー」と手際よく難読化されていくコマンド。 最終的に bash と PowerShell の難読化が合わさってますます意味分からんぞ...。
「VUIでシェル芸を実行できるようにしてみた」 - taka さん
アクセラ(アレクサと発音すると Alexa が反応してしまうためこう呼んでいた)に任意のシェル芸を実行させるための、厨二めいた呪文の詠唱がとんでもなくやばかったです。 ゲラゲラ笑いたいのに、アクセラの邪魔をしちゃダメなので、笑いをこらえるのにみんな必死。 すごく真面目にイタい呪文を唱える、最高の LT でした。
そのた
勉強会中にコマンドを追加した
勉強会 の Q3 で IPv4 アドレスの10進2進変換問題が出ました。
bc
や dc
コマンドで基数変換ができるのですが、ipcalc
という便利なコマンドがあれば一発で求めることができるそうです。
シェル芸botには ipcalc
は入ってなかったのですが、せっかくふるつきさんから ShellgeiBot-Image リポジトリのコミット権をもらってるので、勉強会中にしれっと追加 しちゃいました。
11000000.10101000.00001010. 00110111 https://t.co/2Vmh4ZeMPF
— シェル芸bot (@minyoruminyon) 2019年8月10日
シェル芸bot、シェル芸勉強会で話題になった途端にipcalc入ってくるのでフットワーク軽い
— Blacknon@通勤電車リハビリ中 (@blacknon_) 2019年8月10日
おわり
終始とても楽しい勉強会でした。 主催の会長さん、参加いただいた皆さん、LT で発表していただいた方、運営を手伝って頂いた方、会場を貸して頂いた大阪工業大学さん、ありがとうございました。
$ owari kan -g -a so | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 終 | | 制作・著作 | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ | | so | |_________| ∧∧ || ( ゚д゚)|| / づΦ
次回は午前の部が企画されているそうで、楽しみです。 次回もよろしくお願いします!