Home > FlashMind

FlashMind Archive

OpenLaszloとRed5でrtmp通信を実現?

Flashmindについて、大きな方向転換を考えています。

現在抱えている問題として、
・Flash Media Server2を使いたくない
・ユーザ登録やメニューなど、コア機能以外の部分を作るのが面倒
の2点が大きいです。

1点目に関しては、共有をメインの機能として考えているだけに、共有する人数によってライセンス料が変わるような製品は使いたくないというのが大きな理由です。
できることなら全てオープンソース製品で統一したい。

2点目は、Flashを使ってユーザー登録などを行なう場合、UIの設計という面倒な作業があります。
使いやすいインターフェースで、ユーザ登録などの機能を実装するのは大変です。

1点目の解決策として、Red5というオープンソースのサーバを検証中。
これは、rtmpプロトコルを利用できるサーバで、Flash Media Server2と同じような機能を提供してくれるようです。

2点目は、まだどうしようか悩んでいるところですが、
・Flashを使わない
ユーザ登録にはRuby on Railsなどを使って実装するわけです。
OpenLaszloを使う
オープンソース版Flexといったイメージでしょうか。様々なコンポーネントが用意されていて、ユーザ登録などの作り込みも楽そうです。
Ruby on Railsとの連携もできるようです。

情報によると、インターネットラジオのパンドラもOpenLaszloで作られているとか。

もう少し調査が必要ですね。

セーブ機能ができたものの、一つ問題が

GW終わっちゃいましたねぇ。
体調を崩して、あまり開発が進まなかったです。
セーブ機能を作ったのはいいんですが、現在借りているレンタルサーバ、 hetemlはFMSサーバへの同時アクセスユーザが5人までという制限付きです。

今、既にある程度アクセスがあると予想されるサイトでテスト運用をしていますので、ここで公開することができません。
同時接続数が多いサーバに引っ越すか、今サーバ一台丸ごと借りている方のホスティングに自前でFMSサーバを立てるか検討中です。
それと、セーブ時にのみFMS2と接続する仕様に変更することで多分ある程度は持つんじゃないかと思われます。

今しばらくお待ちください。

久しぶりにFlashMindの話

FlashMindですが、 急に開発スピードが遅れてしまっています。すみません。

いろいろ別件が忙しくて時間が取れなかったのですが、GW中に取り戻したいと思います。

最近ハマっていたのが、FMS2(Flash Media Server2)とSharedObjectの扱い。 FMS2関連の情報があまりなくて、困っています。
Web上の情報ではFMS2とそれの前身であるFCS(Flash Communication Server) 用のコードが入り乱れている上、ActionScript1.0用コードだったりActionScript2.0用コードだったりするので、 どの方法が最適なのか良くわかりません。MacromediaのサイトでさえFCS用のサンプルばっかりだし。
また、FMS2にフォーカスした書籍もあまり見当たらない。
結局マニュアルが一番頼りになるんですが、イマイチ説明不足なんですよね。

また、Eclipse+MTASC環境でコンパイルしたバイナリはFMSと接続ができないことが発覚。
いろいろ試行錯誤していたのですが、同じコードをFlash8上でコンパイルしてみるとちゃんと動くのです。
仕方ないので、全てオープンソース製品で作るというのは一旦あきらめて、コーディングはEclipse、 コンパイルはFlash8で行うことにしました。

一応、更新+保存できるバージョンをGW中にリリースする予定です。

まずはwikiのように誰でも書き換えることのできるものになります。
(単純に、アカウント作成の機能とか作りこむ時間がないからってだけですが)

ビジュアルコミュニケーション

 FlashMindの一つの要素として、「ビジュアルコミュニケーション」という言葉を打ち出していました。

マインドマップは、脳の中で考えていることをビジュアル的に表現することで、 より自分自身や相手に対して直感的な理解を促すという特徴があるからです。

でも、一般的に「ビジュアルコミュニケーション」という場合、「テレビ会議」のシステムをさすことが多いようです。

うーん。何かうまい表現はないものだろうか。

FlashMindがはてなブックマークの注目エントリ入りしたようです。

打ち合わせから帰ってきたら、会社のK君から、「 FlashMindがはてブの人気エントリーに載っていますよ」 との報告がありまして、はてなブックマークを確認してみたらYouTubeでエヴァが全話見れるとかいうエントリの下、 3番目に載っていました。

とりあえずPVを確認してみたところ、昨日までは100PV/日くらいだったアクセス数が、今は4,000PVくらいになっていて、 まだ伸びているようです。
恐る恐るブクマコメントを見てみましたが、 一応罵倒とかされてなくてホッとしました。
期待していただいているようで、大変喜ばしいことです。
もうちょっと使い勝手が改善されてから注目されたかったなぁ。開発が遅れていることが悔やまれます。

見る人が増えたということは、使い方の説明とか、サイト全体のデザインなどにもそろそろ取り掛からなくてはいけないなぁ。

【FlashMind】ノードの移動・削除ができるようになりました。

やっと、ノードの移動や削除、編集ができるようになりました。
BOI(第一階層)レベルの移動や、何もない階層への移動がまだ実装できていませんが、大きな山をひとつ越えた感じです。
とりあえずノードの移動関連は結構スムーズに進みそうな予感。

今回のバージョンで若干、操作感を若干変更してあります。
ノードの選択部分はFreeMindよりMindManagerに近い感じになりました。
そろそろ操作マニュアルを用意しなくてはいけませんね。

FlashMindの最新バージョンはこちらからご確認いただけます。

ノードの追加ができるようになりました。

バージョン0.0.7(α)を公開しました。

やっとノードの追加ができるようにはなったのですが、削除と移動が実装できていないので、まだちょっと使い物にはならないです。
本当は移動も実装したはずだったんですが、ノードの移動の仕方によっては上手くできないのを先ほど発見してしまいました。

でも、やっぱりノードの追加ができるようになると、結構楽しいですね。是非こちらで試してみてください。

FreeMindやMindManagerと同じように、ENTERキーとINSERTキーでノードの追加ができます。
方向キーで移動ができるようになると使いやすくなりそうです。

FlashMindの実行環境にFlash Media Server2を選んだ大きな理由のうち2つが覆される

はてなのid:naoyaさんがETECHのレポートをアップしていたので、 感謝しつつチェック。

"Bionic Software"とかもなかなか面白いんですが、Ajax関連で「やっぱりきたか」 と思った技術が2つ紹介されています。
"TrimJunction"と"Comet"というものですが、TrimJunctionはAjaxのMVCフレームワーク、 Cometは擬似的ではなく、本当のPUSH配信を実現する技術だそうです。

そこで、ウェブサーバーの Socket 周りの処理を Hack しつつ、 クライアントとブラウザのコネクションを close せずに繋げっぱなしにして本当の意味での PUSH を実現しましょうというのが Comet というテクニックです。

FlashMindはFlash Media Server2(FMS2) 上で動いていますが、AjaxでなくFlash(& FMS2)を採用した理由に、 ブラウザの依存性をなるべくなくしたいというのと、マップ編集をリアルタイムで共有する時に、 FMS2なら本当のPUSH配信が可能だという点がありました。

しかし、TrimJunctionでAjaxがMVCフレームワーク化され、 Comet擬似的でないPUSH配信が実現するとなると、FMS2じゃなくてもいいことになっちゃうなぁ。
FMS2はコネクション数に対してライセンス料がかかるので、できればAjaxにしたいところですが、今から作り直すのも大変だなぁ。

まあ、もう少し利用されて、こなれてきたころにまた考えようかな。

図解の弊害

 POLAR BEAR BLOG: 図解の弊害
http://akihitok.typepad.jp/blog/2006/03/post_adfe.html

というエントリで、図解の弊害についてコメントされていました。

「図を書くという行為には物事の関係をはっきりと理解させ、仕事を効率化する力がある」とのことです。
しかしマインドマップの例を考えると、「図解はすばらしい!」と手放しで賞賛はできません。天邪鬼な僕は、 あえて図解の弊害を考えてみました。

マインドマップには右脳型思考による発想法記憶法といった側面もあるので、 単なる図解としての側面で捕らえるのはちょっと違うと思いましたが、なかなか興味深いエントリです。

エントリ中では図解による弊害として、

弊害1:思考が単純化する

弊害2:思考が固定化する

弊害3:思考が平面化する

という点をあげています。これは3つとも同じような指摘で、 一度図を作ってしまうとその考え方から抜け出すのも大変だということですね。
このような現象は「フレームワーク」にも当てはまるんじゃないでしょうか。グロービスなどのビジネススクールへ通ったあとに、 中途半端にフレームワークを使ってしまうことで凡庸な考えしか浮かばないことがあります。フレームワーク思考から抜け出せないんですね。
いわゆる、「ツールに使われている」状態というか。

上記とは別に、

弊害4:後で説明が必要

という点も上げております。これはまさにマインドマップを人に説明するときによく陥る現象ですね。
特に、僕のように「共有型マインドマップ」を考えている者にとっては、悩ましい問題です。

しかし、図解もフレームワークも強力なツールであることは間違いがないので、 正しく使えば本当に威力を発揮します。エントリでは、

  • いきなり図解しようとしない
  • 一度書いた図をリセットする勇気を持つ
  • 図形以外の情報も併用する

ということを提案されています。意識しておきたいポイントですね。

ちなみに、MindManagerなどの、PCのマインドマップツールを使った場合図のリセットが簡単なので重宝しています。

ver.0.0.6(alpha)公開しました

Flashのマインドマップビューア、FlashMindのver.0.0.6(alpha)を公開しました。
http://www.flashmind.jp/http://www.flashmind.jp/にて、最新バージョンを公開しています。
各ノードを枠で囲って表示していましたが、FreeMindと同じく「フォーク」と「バブル」2種類の表記に対応しました。
タブキーでの移動などもできるようになっています。

とりあえず、ビューアとしての機能はここまでで一旦Fixします。
明日からはいよいよマップの編集とセーブ機能の開発です。

タブレットPCでマインドマップ

MindManagerの販売元である、Mindjet社のブログを眺めていたところ、 タブレットPCを使ってマインドマップを書いているデモを発見!

http://host323.ipowerweb.com/~studentt/video1.html

テキサス大学の生徒がタブレットPCを使っていろいろなソフトを試しているビデオなのですが、この5分22秒あたりに、 マインドマップをタブレットで操作している図が出てきます。

僕は会議の時にPCを使ってミーティングをするのが苦手で、だいたい手書きでマインドマップを書いています。
話の流れによっては紙の大きさが足りなかったり、BOIを書き換えたくなるんですが、タブレットPCを使えば気持ちよさそうです。

http://www.classtablet.com/webcasts/MindManager_webcast/MindManager_webcast.html

では、高校の先生がマインドマップをクラスの中でどう使っているかが解説されています。

うーん。タブレットPCでマインドマップ、試してみたい!

マインドマップ、紙で書く?PCで書く?

先週公開したFlashMindですが、 おかげさまで様々なご意見をいただいております。
ありがとうございます。ご意見いただいた皆さんの期待を裏切らぬよう、頑張ります。

さて、現在公開中のFlashMindですが、若干のバージョンアップをして、埋め込み画像が表示できるようになりました。
また、動作もスムーズになっております。特に、拡大/縮小が改善されました。

http://www.flashmind.jp/bin/flashmind.cgi?file=http%3A//www.flashmind.jp/bin/flashmind.mm
で、現状のFlashMindの解説マップが見れます。

さて、色々皆さんと議論する中で興味深かったのは、紙とPCの違いについて。

「紙の方が自由度が高く、本来のマインドマップの良さが活きる」

という意見が多いですね。僕も、紙のほうが優れている点は多いと思います。

  • 記述に制約がない
  • 実際に手を動かすことで、脳がより刺激される
  • 書く場所、書く姿勢を選ばない

という点はやはり紙に軍配が上がります。
しかし反面、紙の弱点もありますね。

  • 書くのに時間がかかる
  • 紙の大きさの制限
  • 書き直しが大変
  • メールやWebで共有しづらい

というのが主です。個人で使っていて、発想力や記憶力を高める分にはいいのですが、いざ人と共有しようとすると難しいんですよね。

ナレッジマネジメント用語で言えば、紙のほうが個人知から組織知への変換コストが高いと言えます。

というわけで、僕の場合は用途によって紙とPCを使い分けています。
じっくり考えたい場合や、記憶の為に書くマップの場合は紙を使って書くことが多いです。
その後、「これは人に見せるかも」ってマップや、「後から何度も書き換えそうだな」というマップはPCに落としています。
企画書を書くときに、最初は手書きや付箋紙で考えて、固まってきたらパワポで清書するのに近いかもしれませんね。

PCに入れたものをプリントアウトすれば、また紙のメリットを生かせますので、 あまりどちらかにこだわらなくてもいいんじゃないかなと思っています。

みなさんは、手書きと、PCどちらがメインですか?

やっと公開

まだマップの更新はできませんが、やっと表示部分が公開できるレベルになりました!
新しいドメインを取ったので、そちらで公開しています。

Flashmind.jpです。

早速、Flashmindについての解説をこちらに作ってみました。

またまだ、表示ができているだけで、特に見た目がイケてないですねぇ。
マインドマップは右脳を刺激しなくてはいけないので、完成までの道のりは長いです!

ご意見、不具合等ありましたら、hal(at)plants-web.jpか、このエントリへのコメントで受け付けます。
是非一言お願いします!

==追記==
外部のドメインにあるファイルを読み込む際にエラーが発生していました。
2/19 21:30に修正済みです。

ハマっております。

うーーーーーーん、あとちょっとなんです!
あとちょっとで公開できると思うんですが、ハマっております。
といっても、更新出来るバージョンではなく、表示のみですけど。
なんか、雲が上手く表現できないんですよねぇ。
一人で開発していると、ハマった時になかなか抜け出せないんです。。。
とりあえず頭を冷やして、明日また挑戦します。
来週末までには公開できると思うんですが。

【ビジネスリーダー向け マインドマップ活用術】セミナー

 表題のセミナーがMindManagerの販売代理店であるネオテニーベンチャー開発にて行われるので、行って来ます。
内容は以下の通り。

"★★ 【ビジネスリーダー向け マインドマップ活用術】セミナー★★"
http://www.nvd.co.jp/mm/

 「マインドマップ練習帳」を書いた片岡俊行氏が講演! 2/1に出版して、わずか1週間で増刷です。片岡氏は、 学生時代にベンチャー企業を起こした若き経営者で、社内のいろいろな部署でマインドマップを活用されています。


 2005年は、弊社の中野禎二が書いた「マインドマップ図解術」、マインド マップという手法を発明したトニーブザンの翻訳本等、 マインドマップ関連本が多く出版されました。それにより、 マインドマップがビジネスの世界で広く応用できることが認知されてきたと思います。
 企業活動でマインドマップを使うには、ITツールとしてのマインドマップ作成ツールの導入が不可欠です。このようなツールは、 ブレインストーミング、企画立案、戦略立案、プレゼン資料作成、プロセス改善、プロジェクト管理(計画、要件分析、プロセス管理、 リスク管理、課題管理、WBS)等で使用されています。
 本セミナーでは、企業のビジネスリーダーの方々を対象に、マインドマップのITツールとして欧米企業で圧倒的なシェアを持ち、 日本企業でも導入が進んでいるMindManagerが、実際の企業でどのように使われているか、 どのような活用方法があるかにポイントを置いてお話します。是非、ご参加願います。

【開催日】
2月23日(木)

【場所】
丸ビル7階東京21cクラブ
(東京駅丸の内南口徒歩すぐ)

【プログラム】
14:20 開場

14:30-15:30 ベンチャー企業のマインドマップ活用術
               株式会社Sweet 代表取締役 片岡俊行

15:30-15:35 休憩
15:35-15:45 ネオテニーベンチャー開発の事業紹介
               ネオテニーベンチャー開発(株) 代表取締役 松本英博
15:45-16:30 進化するマインドマップ企業内活用術
               ネオテニーベンチャー開発(株) 中野禎二

16:30-17:00 講演者の著作サイン会&交流会

【参加費】 4,000円 (税込)

マインドマップ練習帳、僕はまだ読んでませんが、当日買おうと思います。

もし良かったら、誰か一緒に行きませんか?

表示系のみ、あと少しで公開

とりあえず、FreeMindで作ったマインドマップのビューアーとして、配布することにしました。
あと少し調整したら公開してみます。
現時点での最新は、こちら

調整した点は以下。
・線を曲線にしました。
 やっぱりマインドマップの線は曲線じゃないと。
・ノードの配置を調整
 少し角度を付けました。
・拡大、縮小機能を付けました。
 画面右上のスライダと、マウスホイールで拡大、縮小ができます。
・マップをドラッグできるようにしました。

画像の埋め込みは相変わらず実装できていません。アイコンは、画像ファイルを作る暇がなくてやってません。
根本的な機能ではないので、上の2つは後回しにします。

とりあえずビューアとしての公開後に、以下の機能を実装します。
・ノードをドラッグしてぐりぐり動かす
・ノードの追加/削除/編集をする
・サーバ上でデータを共有する(Flash Media Server上での実行)
ここで一旦公開し、見た目の変更やアイコン、イメージファイルの実装をしたいと思います。

1月中の目標がずいぶんずれ込んでしまったので、気合入れないと。

表示系はだいぶ出来てきたんですが。。。

クライアントサイドのロジックはだいぶできてきました。
こちらで最新のswfファイルが閲覧できます。
読み込んだファイルは以下のもの。
mmt.gif

前回と比べ、だいぶ綺麗に表示されるようになりました。
また、以下の機能が追加されています。
・ローカルリンク
 ノードからノードへのリンク(矢印表示)を実装しました。矢印の角度の調整が必要です。
・雲
 雲を実装しました。
・ノードの折りたたみ・展開
 プラス(+)ボタンで展開・折りたたみができます。
・テキストの編集
 テキストが編集できます。

クライアントロジックでまだ実装できていない機能は、
・画像の埋め込み
 FreeMind上では、画像は<HTML><IMG src="***"></HTML>のように、HTMLで表現されます。
 Flash上で表現するにはちょっと工夫が要ります。
・見た目がきたない
 これはあとから何とでもなるので後回し
・アイコン
 これはすぐ実装できるかな。

サーバサイドの処理が上手くいかなくて、以下の機能はまだできていません。
■ToDoリスト
・ノードをドラッグしてぐりぐり動かす
・ノードのスタイルを好きなように変更する
・ノードの追加/削除/編集をする
・サーバ上でデータを共有する(Flash Media Server上での実行)

とりあえずFreeMindのファイルビューアとしてのswfとして公開して、表示系の部分だけでも使ってもらおうかな。

やっと、表示系の基本が完成

日本語表示の処理にかなり手間取ったため相当な遅れがでてますが、やっと、表示系のswfができました。
下のswfファイルは、FreeMindから出力した.mmファイルを読み込んで表示しています。
FreeMindファイル表示swf
読み込んだFreeMindファイルは、以下のもの。



(クリックで拡大)

見てわかる通り、表示だけでも実装できていない部分がいくつかあります。
・画像の埋め込み
 FreeMind上では、画像は<HTML><IMG src="***"></HTML>のように、HTMLで表現されます。
 Flash上で表現するにはちょっと工夫が要ります。
・ローカルリンク
 ノードからノードへのリンク(矢印表示)が実装できていません
・雲
 雲の実装がまだです。
・見た目がきたない
 これはあとから何とでもなるので後回し
・アイコン
 これはすぐ実装できるかな。
・その他もろもろの、細かいスタイルの実装
 線の形式その他の細かい実装がまだです。

まあ、細かい部分はおいといて、これからまだ以下の処理を行う必要があります。
■ToDoリスト
・ノードをドラッグしてぐりぐり動かす
・ノードのスタイルを好きなように変更する
・ノードの追加/削除/編集をする
・サーバ上でデータを共有する(Flash Media Server上での実行)
うーむ。これは大変!ぞくぞくしてきました。
公開をお待ちの皆さん、今しばらくお待ちを!

ActionScriptを使った実体参照の読み込み

ActionScriptで文字実体参照を使ったXMLファイルを読み込むと正しくエンコードされない不具合にハマっておりました。

そもそも、FreeMindはXMLファイルを保存するときに日本語の文字列を実体参照として保存しています。
たとえば、"あ"という文字は、UTFの実体参照である"&#x3042;"として保存されているのです。
しかし、このデータをActionScriptのXMLオブジェクトを使って読み込むと、"0B"となってしまいます。

ためしにActionScript内で以下のコードを書いた場合は、正しくエンコードされるのに。

trace(String.fromCharCode(new Number("0x3042"))) ;//"あ"が出力される

読み込んだ時点で"0B"になってしまうので、自前でエンコードしようにもできない状況。
せめて、rawデータのまま読み込めれば上の方法を使ってなんとかなりそうなんですが。

結局、Flash上でエンコードすることはあきらめ、サーバ側で実体参照をエンコードする方式を採用。
急遽、Rubyで以下のようなcgiを作成して、エンコード済みのXMLファイルを出力するようにしました。

#!/usr/local/bin/ruby -Ku
print "Content-type: text/xml;charset=utf-8\n\n"
require "cgi"
require 'nkf'
cgi = CGI.new

if cgi['file'] != ""
file=cgi['file']
log=""
fh=open(file)
fh.each{|l|
print l.gsub(/&#x([[:xdigit:]]+);/){[$1.hex].pack("U")}
}
fh.close
end

上記cgiのfileパラメータにエンコードしたいxmlファイル名を入力すると、実体参照を展開したXMLファイルが出力されるので、その結果をFlashから取得しています。
(※上記cgiには、DocumentRoot以外のファイルでも参照できてしまう脆弱性が含まれています。現在稼動しているcgiでは、解決しております。)

ちなみに、上記cgiの12行目、.pack("U")の引数を"v"に変更した場合、"あ"ではなく"0B"が表示されました。
おっと。これはActionScript上で出た文字列と一緒。
てことは、ActionScript上ではunsigned shortでpackされちゃってるってことですかねぇ。

既存のXMLオブジェクトのloadメソッドをオーバーライドすれば、直せるのかな。
まあいいか。とりあえず先に進みます。

アイデアマスター

JUSTSYSTEMから発想支援ソフト、アイデアマスターなるソフトが出ていました。

http://www.justsystem.co.jp/ideamaster/

マインドマップっぽいところもありますが、微妙ですねぇ。

環境をFlash Media Server2に変更

いろいろ試してみましたが、結局Javaを使わず、Macromedia Commnication Serverの後継である、Flash Media Server 2(FMS)を使うことにしました。

これまで、Relaxerをベースにサーバ側にWebサービスインターフェースをつくり、Macromedia Communication Server + Flash Remotingを使ってクライアント側を実装しようと思っていたんですが、サーバ側で行うべき処理がわりと単純なのに、わざわざJ2EEの環境まで用意するのは複雑すぎるということで。
元からXMLをデータソースとして使うためRDBにデータを格納する必要がなく、FMS側にSharedObjectを置けばよさそうだし。

あと、ヘテムルというレンタルサーバを使うと、FMSを購入しなくても月額1,500円でFMSとColdFusinが使えるのでコスト問題が解決するということもある。

開発環境ですが、Flash MX 2004のエディタは正直使いづらいし、コンパイルが遅い。
Eclipseを使って開発できないものかと調べていたら、やっぱりありました。Eclipseを使ってAction Script2.0の開発ができるプラグイン、AS Development Tool (asdt)というのが。これと、MTASCというコンパイラ、FlashOutというEclipse上のFlashビューワを使うことで、Macromedia Flash MX無しにFlash開発ができます。
ちなみに、MTASCをコンパイラに使った場合、ActionScriptにある気持ち悪い仕様が少しマシになります。
たとえば、変数のスコープ。

function f() {
var x = 1;
if( true ) {
var x = "hello";
// ...
}
trace(x+1);
}

こういうことをすると、Macromediaだと"hello1"と表示されますが、MTASCだとコンパイルエラーになります。
(同一変数が、その変数名が有効なスコープ内で再定義することができないようになります)

インストール方法は以下。

■MTASC
http://www.mtasc.org/#download
にあるZipファイルをダウンロードして、適当な場所に解凍するだけ。

■AS Development Tool
メニューからHelp→Software Updates→Find and Install→Search for new features to install
を選択し、New Remote SiteのURLにhttp://aseclipseplugin.sf.net/updates/と入力し、名前は好きな名前を入れれる。
その後、表示されたASDTのパッケージにチェックを入れ、次へ進むだけ。
再起動後、Windows→Preferencesを選ぶと、左側のリストにActionScript2というツリーができているので、Compilerを表示し、MTASCを選択。その後ツリーを展開すると、MTASCの項目があるので、選択したあとLocation of MTASC.exeの欄に、先ほど解凍したMTASCのexeファイルを選択する。
ちなみに、Optionalのところに-version 8と入れると、Flash8形式でコンパイルされます。
その後、Core pathを表示し、MacromediaのClassファイルがある場所を選択。デフォルトであれば
C:\Program Files\Macromedia\Flash MX 2004\ja\First Run\Classes
になります。

■Flashout
http://www.potapenko.com/flashout/
にあるzipファイルをダウンロードし、解凍後出てくるpluginsフォルダの中身を、eclipseインストールフォルダ下のpluginsの下にコピーする。
Flashout.asファイルをMacromediaのClassフォルダにコピーする。(ASDTの時に指定した場所)
eclipseを再起動し、Windows→Preferencesを表示、左のリストからFlashoutを選び、MTASCとMacromedia Classパスを選択する(ASDTの時指定した場所と同じ)

以上で準備完了。
プロジェクトファイルの新規作成をするときに、New ActionScript2 Projectが選択できるようになった。

開発時には、src下にasファイルを作成。
テスト用に以下のコードを書いてみた。

/** * MyAsClass */ class MyAsClass { public static function main(){ var instance =new MyAsClass(); instance.Hello(_root); }

public function MyAsClass() {

}
function Hello (path :MovieClip) {


path.createTextField("txtField", path.getNextHighestDepth(), 100, 200, 620, 300);
path.txtField.html = true;
path.txtField.size=36;
path.txtField.htmlText = "<font size='40'>Hello ASDT!</font>";
path.txtField.textColor = 0x333333;


}

}


同じフォルダに、***.flashout(***は任意)というファイルを作り、ダブルクリックすると、MTASCのコンパイル設定ができる。
SWFタブを選択し、Path to .swfに出力したいswfファイル名を入力。
Root(main)classに、asファイルを選択。
Additionalsタブを選択し、additional params for compilationに-header 800:600:24と入力(800×600ピクセルのステージで、24fpsという意味)を設定して、Compileボタンを押すと、swfファイルが出力される。

さて、かなり進捗に遅れが出てしまった。気合入れて開発しなくては。
まずはこれまで作ったJavaのクラスをActionScriptへ移植です。

Relaxerを使ったXMLデータバインディング

謹賀新年!

年末年始は、XMLをJavaクラスにマッピングする方法と格闘しておりました。

結論としては、RELAX NGでXMLスキーマを作ってからRELAXERというを使ってJavaクラスへデータバインディングを行う方法を採用。

詳しい説明は@ITにあります。

選択した理由としては、
・FreeMindの.mmファイルがそのまま使える
・MindManagerでExportしたXMLファイルとのマッピングがしやすい
・DOMを使ったややこしい開発をしなくていい
・JAXMを使うことでSOAPが利用可能
など。

というわけで、まずはFreeMindの.mmファイルからRELAX NGを使ってスキーマを作成。
.mmファイルの仕様について記述してある文書が見つけられなかったので、既存ファイルを元に想定して作成した。
DTDファイルなどがあればRELAXERで自動変換できるのだが、検索しても見当たらなかったので。
その後、RELAXERを使ってJavaオブジェクトへマッピングしてみると、無事Javaファイルが作成された。

現在開発環境にはEclipseを使っているが、RelaxerにはEclipse用Pluginがあるため利用することにする。
続きは次回。

日本ユースウェア社の方とミーティング

元同僚のAさんに無理を言って紹介してもらった、日本ユースウェア社の方にFlashMindについていろいろとご意見をいただいた。
実際にビジネスでマインドマップを使っている方のご意見はめちゃくちゃ参考になりました。
いろいろな活用例を伺いましたが、やっぱりマインドマップってすごい!
お忙しい中まだプロトも出来ていないツールに対して真剣に話をきいていただいて感謝
来年にはある程度形を見せられるよう頑張らねば!

Strutsのインストール

JavaServlet上で動くMVCフレームワークである、Strutsを使うことにした。
Apache Software Foundationのサイトからバイナリファイルをダウンロードして展開。
展開したファイルの中にある、libディレクトリ以下を、Eclipse上のBuild Pathに設定。
アーカイブファイルである、webapp/struts-blank.warの中にある、WEB-INF/lib以下のファイルすべてと、WEB-INF/以下のすべてのファイルをインポートすることで、準備完了。

とりあえず、適当にググッたサイトにあったサンプルアプリケーションを動かしてみた。
ちゃんと動くので、大丈夫らしい。
Java側の環境はすべて整ったので、まずはFlashを考慮せずに、コア部分を作成してみることにする。
今回の仕様は以下だけ。
・MindMapが、単純なツリー上の構造で表示される。
・ブラウザ上からノード追加・変更・削除ができる
・ノードは、1種類のみ(コメントノードなどは考慮しない)

モデル部分設計完了

本題以外の投稿ばかりでしたが、一応Flashマインドマップの方もちゃんとやってます。
基本となる、モデル部分の設計完了。
Flash Remotingを使う予定なので、Servletの環境構築をはじめる。
とりあえずEclipse+Tomcatの環境をクライアントPCで作ることにした。

まずはJ2SEのインストール。
SunのサイトでJ2SE5.0をダウンロードして、セットアップを実行するだけ。

その後Tomcat5.5.12のセットアップ用ファイルをTomcatプロジェクトのサイトからダウンロードして実行。
インストール時に先ほどインストールしたJ2SEの場所を指定する。

Eclipseは既にインストール済みなので、sysdeoのサイトからTomcat用のEclipse Pluginをダウンロードし、解凍して出てきたフォルダを[eclipseRoot]/eclipse/pluginsにコピー。

Eclipseを起動し、Window->Preferencesを開き、左のメニューからTomcatを選択、バージョンを5.xに変更、Tomcatホーム欄にTomcatのホームディレクトリを設定する。

これでインストールは完了。
プロジェクト作成時に、Tomcat用のプロジェクトが選択できるようになった。

さて、明日からいよいよコーディング。

Flash Communications ServerとFlash Remoting 整理

Flash Communication Server(FCS)とFlash Remotingの違いが良くわからなかったので調査。
マクロメディアのページによると、

Remotingの方は

重要なポイントは、アプリケーションサーバーはそれ自身でリクエストを発し、このプロセスを開始することができないということです。つまり、リクエストを送り、その結果のレスポンスを待つのは常にRemotingクライアントであるということです。

というわけで、サーバ側からデータの更新についてメッセージが送れない。
逆に言えば、FCSを使えば、サーバからメッセージが送れるようになるということか。
ここにもこう書いてあるし。
Flash Communication Server Remotingを使う必要があるのは、Flash Communication Server独自の機能を利用するアプリケーションで、同時にアプリケーションサーバーとの接続が要求される場合です

ふむふむ。では、FCSの方がいいなという気もしたが、Remotingを使えば、サーバ側にロジックを置いておけるメリットがあるようだ。既存のJ2EEロジックなどがある場合は、そのコードも再利用できるし。
チャットくらいならクライアントサイドにロジックを書けるけど、複雑なアプリケーションになる場合はやっぱりサーバ側で処理した方が、いろいろと管理が楽ですねというわけか。

FCSとRemotingは両方組み合わせて使うこともできて、以下のようなメリットがある。
・サーバーサイドで認証を行うことが可能
・アプリケーションサーバーへのアクセスをすべてサーバーサイドでコントロール可能
・SharedObject(共有オブジェクト)を使うことにより、通信負荷を下げることが可能
・FCSとRemotingサーバをファイヤーウォール内に置くことでセキュリティを高められる
・クライアントサイドのロジックが軽くなる
両方使う場合FCS Remotingというのね。

今回の場合、FCS Remotingを使うのがベストなようだ。ただ、FCSって接続数でライセンスが変わってくるんだよな。たしか。。。

まずは基本部分

MindMapのモデル部分と、Node情報を持つクラスを設計してみた。
永続化の方法も考えなくては。

XMLデータは、FreeMindのものをそのまま読み込めるようにしたい。

FlashRemotingを使う前提だと、View部分はいきなりFlashコンポーネントで作ったほうがいいか。
そもそも、環境がない。どうするかな。

FreeMind調査結果(中間)

FreeMindのサイトが復活していたので、調査。

ソースコードをJUDEで読みこみ、クラス図を見てみる。
Model、View、Controlerがそれぞれパッケージになっているようだ。

モデル部分は、MindMapNodeというInterfaceクラスと、NodeAdapterというabstractクラスが中心となっている。
ただ、モデルクラスが入っているパッケージ、freemind.modesの中にはブラウザモードやマインドマップモードなどを操作するクラスも入っていて、なんだかわかりにくい。

FreeMindのサイトが落ちている

確かAPIリファレンスがあったはずなのだけれど。

MindMapのツールなので、開発にもマインドマップを使うことにした。
JUDEという、UMLモデリングツール。
http://www.esm.jp/jude-web/index.html
マインドマップとの連携性が良く、使いやすい。
UMLを思い出しながらマインドマップとクラス図を行ったりきたり。
しばし設計を続ける。

■ToDoリスト
・オブジェクト設計
 まずはFreeMindを調査
 クラス図作成
・サーバ側アーキテクチャ検討
 やはり、FlashRemotingが順当?

開発開始

MindManagerが好きだ。
ただ、残念ながら、チームでの利用に向いていない。
FreeMindも、共通で使えないようだ。インストールも面倒。
Web上で共有しながら使えるMindMapエディタを作りたい。
「FlashMind」なんて名前はどうだろうか。

■作りたいもの
・Web上でMindMapを作成できる
・複数人数で使える
・blogと連携できる

■作り方
・Appletは使わず、Flashインターフェースとする
・サーバ側は未定

■ToDoリスト
・オブジェクト設計
 まずはFreeMindを調査
・サーバ側アーキテクチャ検討

■スケジュール
・仕様設計
 11月中
・開発
 12月
・公開
 1月

Home > FlashMind

Search
Feeds

Page Top