«
XML-RPCできあがり
|Main|
Schemeでチャーチ数
»
«
GRINEditアプレット
|
GRINEdit
|
alpha-0.10 リリース
»
GRINEditが目指すもの
- 世界に通用するソフトウェア
- インタラクティブであること
- 得たいレイアウトを得るために
「データをいじる」
「可視化する」
「またデータをいじる」
を繰り返すのは非効率
- 直感的に操作できること
- 操作の結果も即座に確認できる
- 思考を妨げない
- 拡張性の高さ
- クリエイティブなユーザの思いつき
- どんなに完成度が高くてもすべてカバーは出来ない
- どんなに完成度が高くても「こんな機能はないのか」と言われる
- 拡張性がないとユーザは0から実装しないといけない
- ユーザがせっかくの思いつきを公開する前に挫折してしまう
- ニーズに応じて拡張することが容易でなければならない
- 外部JARファイルからクラスをロード(サポート済)
- Jythonスクリプトの実行(サポート済)
- 再コンパイルの必要がない
- メニューなどのGUIもJython
- 依存性の注入
- インスタンス化をJavaでハードコーディングしない
- メニューを自由に変更可能
- 他のプログラムとの連携
- ソフトウェアを使うのは人間だけではない
- 他のプログラムとの連携が重要
- 他のプログラムが出力した結果を可視化
- 独自フォーマットのデータは余計な手間を増やす
- 多くの言語でパーサが実装されているデータ交換用言語を使うべき
- データファイル形式はJSON
- XML-RPCで他のプロセスから操作が可能(サポート済)
- 再利用性の高さ
- 容易に利用できるライブラリ
- 物理法則ベースのレイアウトエンジンを再利用できるようにする。
- GRINEditを「ライブラリ化する部分」と「それ以外」に分離する。
- いろいろな応用アプリを作ることで不足している機能をあぶりだす
- ユーザ層の厚さ
- 高い移植性
- Java
- Standard Widget Kit(SWT)
- 多言語対応
- 日本語と英語に対応済
- 切り替えも容易
- 他の言語への対応も簡単
- 豊富なドキュメント
- 日本語と英語の両方
- ある程度は自動生成
- 英語サイトの充実
- コンパクトで読みやすいサンプル
- 余裕があれば試してみる
- XSLTでグラフ変換
- プラグイン中でJNIを使う(高速化)
目指さないもの
- 1000頂点、10000頂点などの巨大グラフの表示
- 巨大なネットワークはどう表示させてもわかりやすくないと思う
- 表示だけはいちおう出来る
- 収束状態へ落ち着くまでの時間の短さ
- 描画を止めて計算する方が高速だが、操作に応じてグラフが連続的に変化することを重視
- 連続的でない整形アルゴリズムは必要に応じてメニューから選ぶ(それなら非連続的でも不自然ではないので)
- 論文になるような新しい整形アルゴリズム
- 学術的に新しいアルゴリズムでも使いやすいライブラリやツールがなくては使える人が限られる。
- 既存の力学的整形方法にも、実装上ではいろいろなノウハウがある。論文にならないノウハウを再利用可能なライブラリにすることにも価値がある。
Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/89