= Skype ビデオ会議のメモ = 僕が付けていきます。 == 第三回 == * 3 月 10 日 14:30 - 16:30 * yas さんから スピーチバルーン周りについて * 急に暑くなった * HowToMakeSpeechBalloon * NewSpeechBalloon * AboutSpeechBalloon * BalloonModel * SpeechModel * ClientPanelEditor === スピーチバルーンの配布 === * 配布方法を決めかねている ⇒ json テンプレートの形式を定めてから * engine の利点 * 割と簡単に組み込める * 作るほうに負担 js, jsonテンプレート, 画像 * zip で配布 * 管理者が大変 === スピーチバルーンテンプレートリストの取得 === * v05dev ではファイルツリーに反映まで実装、、、 === スピーチバルーンテンプレートの削除や停止 === * 削除は考えていない * 噴出しの停止はあるかも でも先でよい === スピーチバルーンテンプレートのID とクラス名 === * ぺったんR の世界でユニーク === スピーチの x, y 座標 === * %指定 * 今は css ⇒ x_ratio, y_ratio, width, height 不要? === スピーチのリッチテキスト === * 中間言語 いろんな記法が将来的にでてくる。 === 他 === * 各スピーチバルーンテンプレートが独自に定義しそうなもの ギザギザの山の高さ、尻尾の折れ具合 * svg ⇒ 透過png @ Imagemagic http://www.imagemagick.org/discourse-server/viewtopic.php?f=6&t=22631 * ls_helper ライセンスデータ作りが大変、というはなし。 * html と css のみで描画できる FF風矩形, DQ 風矩形 テキスト。DB 状。 * DB 上は スピーチバルーンとは別になりそう。エディターでは同じ選択肢の仲間としてみせるのがよさそう。 * 単一の div 要素でできるもの、複数の div になるもの。html 構造がさまざま。 === いとっちの吹き出しまわり実装順 === * テキスト * 枠線のあるテキスト * 構造 speech_balloon > speech & balloon * テンプレートの書き方を yas さんに聞きながら * 画像を用意しておけば * エディターで必要なデータ === 最後に === * 次回は作業の乗り具合で * ネコ(ガー・♀)の紹介 == 第二回 == * 2 月 24 日 14:30 * HDD 容量が足りなくなってミスって Ruby の環境を消したみたいで、実装が進まなかった、、、 === 開発の様子の紹介 === * FireFox + FireBug * Aptana Studio 3 === js 言語の癖 === * JavaScriptは 1995 年生まれ。Netscape Navigator 2.0 で初めて実装され Internet Explorer 3.0 に搭載された。 * プアな環境でも動くように設計されつつ、大規模開発にも耐える(わけないけど、実際ナントカ大規模開発されている) * prototype 拡張 * 大きなライブラリではクラスを定義するコードから書き始める、地ならし StudyOfJsClass {{{ code javascript var FileClass = Class.create( /* 略 */, { getName : function(){ return 'name-' + this.id; } } ); var f1 = new FileClass(); f1.id = 'A'; var f2 = new FileClass(); f2.id = 'B'; if( f1.getName === f2.getName ) // 異なるインスタンス間でも公開メソッドが一致。 f1.getName() // name-A でもなんだか意図した動作 f2.getName() // name-B でもなんだか意図した動作 }}} function を見てもどのインスタンスか?分からないので、this を特定できるようにする仕掛けが必要。こんな感じに。 {{{ code javascript EventDispatcher.addEventListener( 'click', callback, thisObject ); }}} ==== ちなみに Ruby の場合 ==== 同じく動的言語。 {{{ code javascript f1.getName == f2.getName // クラスが同じ場合、true f1.getName === f2.getName // 各インスタンスに振られたオブジェクトID があり、異なるインスタンスのメソッドは false。 }}} === js シングルトンパターン === * system.js 内のコードは機能毎に js シングルトンパターンで書かれている。 * 最速インターフェース研究会:JavaScriptのデザインパターン - Singleton, http://la.ma.la/blog/diary_200508141140.htm {{{ code javascript var PetaNantoka= ( function(){ // 隠蔽された 値や関数 をここに書く。 var hiddenVal = '秘密'; function invisibleFunc(){}; // PetaNantoka.welcome(); 等で同一階層(同一スコープ)からアクセス可能。 return { welcome : function(){}, createComic : function(){}, createPanel : function(){}, washoi : function(){} }; })(); }}} === system.js の File の説明 === myFile.name() の中身は、 {{{ code javascript name : function( newName ){ // 権限等の検証 // サーバのデータ更新 // サクセスでアイコンの再描画とか }, }}} * なぜサービス(サーバ)は止りデータを失うのか? * サーバがコアなサービスに専念し、クライアントが様々な Web API とマッシュアップして、サブなサービスを提供する。 (ことでサーバの負荷を下げサービスをつぶれにくくする) * 各 Web API に対して ドライバーを書き、ajax コンテンツはファイルとして蓄える。ファイルを見るためのシェルを提供する。 * アプリケーションは、ドライバーが親となるアプリケーショングループに属し、基本的にアプリケーショングループ内でファイルを融通する。 === yas さんの調査していること === * 開発に入る前に考えること * 素材を取りやすく Flicker 等の API 調査。しっくりこない、使い方が難しい、ごっそりもってきても。 * Pixiv ライセンスが統一されていない。作者がそれぞれ個別に設定しているみたい。連絡して が多い? * pettanR サーバ から自分の Blog へ。表示機能だけのプラグイン。js で動的に書き出す。 === 次回 === * Balloon まわりについて話せたらよい。 == 第一回 == * 2 月 11 日 14:00 * ビデオ会議の操作確認(ビデオ、画面共有) * yas さんから wiki の読み方、開発の様子と開発モードの切り替え。 * itozyun から年賀状送りました。 * 次回打ち合わせ テクニカルな話の他に、今後は Web や マンガ文化 とかについても。