6月のJRuby勉強会で、秋間くんがプログラミングを見せながら資料を見せて。
という様子を見ていて、ライブコーディング用のプレゼンソフトがあったらいい
なぁ。と思い、Rubeusの勉強がてら作ってみました。開発時間は3時間くらいか
な。ホントにRubeusは、よくできてると思いました。
添付してありますが、Railsプロジェクトです。
Rubeusクライアントは、clientフォルダにあります。複数ファイルにわかれてい
るので、起動コマンドは、startというファイルの中味を参考にしてください。
構造としては、サーバー側をscaffoldで作成。ここに高橋メソッド用のプレゼン
メッセージを入れて行きます。
サーバーはこれだけ。
そしたらサーバーを起動してください。jruby script/serverです。
クライアントは、起動後サーバーにアクセスします。今は、localhost:3000を見
に行きます。
アクセス後、データベースの内容をxmlで受け取り、配列に展開しているだけです。
右矢印もしくはクリックで次のスライドに移ります。
左矢印で戻ります。
Macで動作確認したので、Windowsとかだと違うキーコードかもしれませんが。。
Windowは、アクティブになっていてマウスオーバーすれば、大きくなり、マウス
がウインドウから離れれば、小さくなってプログラミングしているウィンドウが
見やすい。という仕掛けです。
scaffoldでDBの内容を変更したら、キーボード「l」(エル:つまりloadのつも
り)を押すと再読み込みします。
また、キーボード「s」を押すと小さくなります。大きくするなら、マウスオー
バー。
なんか思いつきで、ドンドン書いてしまったので、うまくないところがあると思
います。
秋間くん。暇なときに中味を見て、リファクタしてくれると嬉しいなぁ。
学んだ事:interfaceのimplementが、クラスでincludeだということ。
:Javaの定数とイベントリスナーのメソッド関係は、JavaとJRubyで大
文字小文字が色々だということ。
例えば:Java: Color.BLACK JRuby: Color.black
:Java: KeyPressed JRuby: keyPressed
つまり基本小文字。頭小文字。2ワード以上の場合、2ワード以降の冒頭大文
字。これ知ってれば、あと一時間早くできたかもかも。
ありがとうございます。
VK_LEFTでしたね。なんだっけなー。と思っていました。
時間がない中作ったので、めんどくさいからkey codeそのまま入れましたが、キーコードは全て直しました。
今日、客先へ移動する時間を利用して、さらに改造しました。
プレゼンのページ毎に、メッセージとプログラムを組み込めるようにしました。
プログラムは、データベースに登録します。
例えばエフェクトをなんかするとか、サーバーにアクセスした結果を表示するとか。プレゼンしながら、だんだんプログラムが変化していく感じです。
Javaでやろうとすると、ちょっと面倒なことかもしれないですが、さすがスクリプト言語。簡単でした。
taka_2 さんは書きました:
コメントアウトしたのは、Modelに実装。validateとして実装したので、データ
を登録する直前に文法チェックをして、間違えていたらメッセージを表示してDB
への登録を中止するというものです。
しょーがないので、クライアントに実装しました。
サーバーから送られて来たRubyコードに誤りがあると、起動側の画面に
・エラーがあるスライド番号
・エラーの内容
・プログラム
を表示します。
taka_2 さんは書きました:
サンプルありがとうございます。秋間です。
なんだかすごいことになってきましたね。
で、RubeusPresen on Railsをリポジトリのどこにしまうのかなんですが、
examplesに入れれるとgemがいまより数十倍の大きさになってしまうので、
リポジトリにtrunk、tags、branchesと並んで、applicationsというディレクトリ
を作って、そちらにrubeus_presenをコミットしました。
ちなみに、log/*.* と config/database.yml はコミットできないように
なっていますので、チェックアウトしたら config/database.example.yml を
コピーするなどして、config/database.yml を作成してください。
https://rubeus.googlecode.com/svn/applications/rubeus_presen
あるいは
http://rubeus.googlecode.com/svn/applications/rubeus_presen
です。
最首さんをはじめコミット権限のあるメンバーは、前者で行けますので、
変更修正を行うなら前者でチェックアウト作業してください。
で、リファクタしてみました。
どんな変更をしたのかは、Subversionのコメントをご覧ください。
http://code.google.com/p/rubeus/source/list?start=173
各リビジョンの画面で、expand allをクリックすると、一気に差分が
見えて便利です。Google Code Hostingやっぱり便利っすね。
何かおかしな点などありましたらご指摘ください。
2008/08/20 20:58 Eihiro Saishu <e.sa...@gmail.com>:
ちょっとまだ修正した方がいいところがあったので、
ちょびっと修正しました。
http://code.google.com/p/rubeus/source/list?start=175
リビジョン172辺りでコミットに失敗してますが、
最新版は大丈夫だと思いますので、大目に見てやってください~。
2008/08/21 1:06 秋間武志 <akm...@gmail.com>:
ありがとう。
テキトーに書き始めたのに、奇麗にリファクタしてもらっちゃって感謝です。
早速、明日のプレゼンで利用します。
秋間武志 さんは書きました:
RubeusPresenいい感じになってきました。
今度は、scaffoldを変更しました。
今までは一覧表示はおなじみのscaffoldでしたが、Ajaxを使って移動したいレ
コードをドラッグ・ドロップすれば、レコード位置を修正してしまうようにしま
した。
To:秋間くん
さっき聞いた話。なんとか解決しました。
ソースは、先ほどコミットしましたので、みなさん是非お使いください。
秋間武志 さんは書きました:
秋間武志 さんは書きました: