Jupyter Notebookを普段使いして仕事効率化する

Jupyter Notebook という機械学習の試行過程で使われているツールを、機械学習じゃなくて、普段の仕事の中で使ってみたら、とても重宝したという、お話です。

Jupyter Notebookって?

WEBで検索すると「機械学習の現場で重宝する多機能Webエディタ」とタイトルされた記事が出てきます。
pythonでできていて、Jupyter Notebook自身が、httpサーバーの機能があり、http://localhost:8888/ でブラウザでノートを編集するんですが、編集している対象は、localhost上のファイルになってます。

ノートに書いたpython等のコード片を、ブラウザ上から実行すると、httpサーバーがそのコードを実行して、結果をノートにフィードするという感じになってます。たぶん。
コード片だけじゃなくて、もちろん、メモ書きもマークダウンで自由に書き込めます。
そして、実行結果がグラフとしてノートに記録することができて、そういうのを、画面を切り替えずに、1画面の中でできるというのが良いんだそうです。
ここに動画のわかりやすい説明があるので見てみてください。きっと使いたくなります。
http://techlife.cookpad.com/entry/write-once-share-anywhare

コードを書いて、実行して、その結果をグラフ表示したり分析してメモを添えたり、そういった ”一連の作業をノートとして書きとめる” ために、作られたんでしょうね。 確かに、そういうのが、欲しかった!
以前、話題になったニュースで、研究者は実験過程をすべてノートに記録するということを知りましたが、同じように、機械学習の試行錯誤の過程もノートに記録するわけなんだけど、Jupyter Notebookを使うと効率的ですよ・・・というわけですね。

機械学習以外で使ってみる

そして、今では、pythonだけじゃなくて、40種類以上のプログラム言語に対応していて、Spark、R、SQL、shell なんてのも使えるらしいです。

ということは、用途は、機械学習にとどまりませんね。ちょっと、思いつきで上げてみますね。

ターミナルのログ

teratermなどのターミナルのログ保存の代わりになりそうです。
コマンドとその実行結果と、それにメモ書きを添えて、きれいにノート保存できるので、気持ちが良さそうです。

コマンド起動用のショートカット集として

nodejsのgulpとか、laravelのartisanの実行とか、いつものコマンドなんだけど、ディレクトリ移動したり、コマンドのオプションなんだっけ?とか、そんなときに、ショートカット集としてまとめておくと使えるかも。
なにしろ、メモとしてじゃなくて、そこから即実行できますからね。便利です。

DBのCSV抽出とグラフ化

DBから検索して、ちょっとした表やグラフを付けたレポートを作成するなんてときにも、このノートで共有しておくことで、効率があがりそうです。

DBのフロントエンドツールとして

phpMyAdminとか、MySQL Workbenchみたいなものの代わりに使えるんじゃないかしら。

作業手順の共有

これまでも、いろんな作業手順をredmineやgitlabのwikiに整理してきましたけど、コマンド実行を含んだ作業手順なんかは、このノートで共有するのも悪くないですね。

保守作業の起点に・・・

社内の踏み台サーバーにインストールして、そこ起点の定型作業を、ノートから実行できたりすると、使える局面が結構あるような気がします。微妙に全自動にできない定型作業とか、結構ありますからね。

他にもたくさん、活用アイデアが出てきそうです。 早速つかってみてください。

即、導入したい場合は、Windows版やMac版を普通にインストールして、追加モジュールを追加していくとよいと思います。

でも、その前に、ちょっと試してみたい人のために、Jupyter NotebookのDockerコンテナを用意しました。サーバー内で使いたい場合も、Dockerコンテナになってるとサクッと導入できて便利だと思います。
このコンテナは、SQL用のモジュールを入れてあるので、mysql で SQL を実行して、テーブル形式にノート保存することができます。
お試し版としては、ちょうどよいと思います。どうぞ、使ってみてください。
https://github.com/altus5/jupyter-mysql

最近の記事タグ

\(^▽^*) 私たちと一緒に働いてみませんか? (*^▽^)/

少しでも興味をお持ちいただけたら、お気軽に、お問い合わせください。

採用応募受付へ

(採用応募じゃなく、ただ、会ってみたいという方も、大歓迎です。)