未完放流

終わりなど無い、有るのは試練だけだ……

黒い画面を見たことない人達にJupyter でシェルスクリプトを回してもらったら職場がハッピーになった話

最近までシェルスクリプトを過去の遺物と言っていましたが、 いらないのは自分が書いたPerlスクリプトの方でした。

シェルスクリプトを馬鹿にしてました。すみませんでした。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

贖罪のためThe UNIX Philosophyを職場で現在風アレンジしてみました。 廃れると言われ続けながら、何十年も使われるコマンドたちを思い浮かべると 何故か「甦る変態」という言葉が頭によぎります。

「顧客が本当に必要としていたもの」はプログラマにとってはシンプルなものという話は多いのではないでしょうか?

CLIのオペレーションが律速

顧客が持ってくるのはExcelではきつい数千万件位のデータを加工する。 しかし頼まれた通りに加工しても思い通りの結果が出ないので処理の一部を変える微調整を繰り返す。 これをターミナルでシェルスクリプト(もしくはPerl)で行う。

Jupyter で bash が使えないか?

有り難いことにbash_kernelも既に公開されており Jupyter hub を使うことで複数人いても環境構築、運用等で大きな問題は起きなかった。

  • 処理に必要な最低限なスクリプトや処理内容を説明した note は用意する。
  • クライアント自身にファイルやパラメータを変え作業をしてもらう。
  • 足らない機能などは状況に応じて、私が探すか作るかという方針にした。

効き目

単に先祖返りをして端末がWebブラウザに変わっただけのようだが、 ターミナルを使ってことがない人間にとってはストレスが格段に少ないのではなかろうか。 第三者がみても操作履歴が格段に把握しやすく、問題が起きた時にも対処しやすい。

予想してなかった嬉しい副作用

  • クライアントにも説明がしやすく、プログラムが理解してもらいやすくなった。
  • 簡単な条件変更もクライアント側で行ってもらうことができ、こちらも本質的な問題にさける時間が増えた。

Jupyter はデータサイエンスのための解析ツールとかノートと呼ばれることが多いけれど、 実はプログラミングの学習ツール・(試す・実践できる)教科書としも優れているのでは思われる。