鯨飲馬食

いろいろつまみ食いで勉強したことのメモ書き

猫とUNIXパイプが繋いでくれたもの

2019年の最終出勤日、恒例の納会LTでパイプについて話しました。

UNIXパイプはコマンドの出力を別のコマンドの入力に繋げてくれる機構です。発表の中では、猫の画像をターミナルに表示するlongcatというソフトウェアとUNIXパイプを使って、加工した猫の画像を表示させる方法を説明しました。

f:id:yoichi22:20191229171133p:plain

資料とQandA

speakerdeck.com

Q. 何で太らせようと思ったの?

「longcat はオプションで縦に伸ばしたり何匹か並べたりできるけど、横に伸ばせなかったので」と当たり障りのない答えをしたけど、健康診断で安定の脂肪肝を告げられた後に、年末パーティでフォアグラ食べて罪悪感に苛まれたのが後を引いてたのだと思います…

Q. 何で base64 ってわかるの?

酔っててその場では答えられなかったけど、冷静な今なら英数と / と + しか出て来てないのでわかりますね。パディングの = 見ればわかるのではという話が出たけど、パディングは必ずしも入るとは限らないのでそれに頼らずにわかるようにならないといけない(いけないことはない)

年の締めくくりにこの話をした経緯

他の登壇者はみんな構成しっかりしていたのに、私の話はWhyが完全に抜けてるし、あちこち飛躍してました。聞いてた人はここ見ないだろうけど書いておこう。

longcat との出会い

会社でやってるLT大会でlongcatのことを知って遊び始めたのがきっかけで、ターミナルに画像を表示する仕組み(Sixel Graphics, iTerm2 Inline Images Protocol)とかに興味を持ちました。

yoichi22.hatenablog.com

10月のhacktoberfestでは、longcatだけでなく、iTerm2にもフィードバック投げたりしました。

github.com

楽しいシェル芸

そして12月、シェル芸Advent Calendarで楽しそうな記事を見つけて、これターミナル上で出せたらいいのになと思いました。

qiita.com

ファイル出力したものがimg2sixelで表示できなかったのでissue投げたり

github.com

そのあとtextimgの方をパイプ出力でGIFを吐けてなかったのを修正したりして

github.com

最終的に、無事にターミナルで表示できるようになりました。

パイプが繋いでくれた

longcat と iTerm2 とか、textimg と libsixel とか、プログラムの連携部分で両方にフィードバックする機会を与えてもらって、その一部を繋いでくれたパイプってすごいなーって思った。それ自体の機能であるプログラムの入出力を繋げることだけじゃなく、知らなかったプログラムと私、それまで参加してなかった開発コミュニティと私を繋げてくれたのすごいなーって思ったのが、LTでパイプについて話すことにしたきっかけでした。