とりあえず現状のものをgithubに置いてみた。
まだたいしたことは出来ない。動くだけである。mockなところも結構残っている。
今のところ、
- ディレクトリリストを見る
- ノートを展開して開く
- ノートの中のコードを実行する
- 新規にノートを作る
- ノートのファイル名を変更する
といったことが出来るようになったので、公開することにした。コードが実行出来るのは気分がいいね。
現段階では本当に「動くだけ」で、kernelに対するhertbeatは動かしていない(実装してない)。また、自分の普段使っているRuby kernelとJavascript(Node) kernelだけで動作確認をしている。Pythonは使わないので、動くかどうかはわからん。動かしたい人はIPython入れて動かしてみればいい。
stdinも動かしてない。これを試すには、普段使っていないkernelを入れてみないといけないだろうと思うので、優先度は低い。
自分の普段使っている使い方の範囲では特に問題を感じていない。実は私の環境では本家のJupyterの方の動きがアレになってしまっているので、自分の環境は移してしまっても良いんじゃないかと思っている。「何もしてないのに壊れる」は、殊自動アップデートというものが存在している限り、ありうることなのだ。
2つのkernelを動かしてみた範囲では、本家と同じ表示になるので、まぁ間違ってはいないだろう。
スペシャルコメントでkernelを切り替える機能は実装してない。あれは実のところ一種のdurty trickなので、もうちょっとマシな方法を提供するべきだと思う。もっとも現状ないと不便だったりするので、何か考えないといけない。
本家をリバースエンジニアリングをしながら試行錯誤をしているので、自分でも嫌になる程コードが汚ない。処理の同期非同期の選択や対応がとても雑である。まぁこの辺はいつでも出来ることなんだから、あわてる必要はない。そんなことよりも「ちゃんと動かす」ことの方がはるかに重要である。
デバッグ出力が大量に出るのは仕様であるw
認証を途中まで作って中身がなしで放置されているが、これはすぐにやる予定。出来ればマルチユーザに対応しようと思う。現状のJupyterの何が不便と言って、情報共有に必要なことが何もないというのが一番不便を感じているので。
フロントエンドのJavascriptは,動いているJupyter notebookの環境からパクって来ただけなので、いじれる状態ではない。最初からnbextensionが入っているのもそのせいである。それにしても、requirejsの記述と実際のファイルの配置がデタラメと言って良いくらい食い違っているんだが、これはどうやって作ったものなのだろう。正しく直してしまって良いものなんだろうか?
ファイル操作はなるべく早くもっとマシなものと置き替えたいと思ってる。今のJupyterの操作で一番残念なのがここなので。具体的にはRichFilemanagerを組み込んでしまいたい。
まぁ何にせー「言うだけウェア」じゃなくて、ちゃんと動くところまでは動いてんだよってことで公開してみた。興味があったら、いじってPR出して欲しいところ。
PS.
チマチマいじって、だいぶんマトモに使えるようになって来た。自分の使う範囲では実用的に動いていると言っても良いので、現行のJupyterからこっちに移行してしまおうかと思っているところ。