2011年12月10日土曜日

FlexのLineクラスでマウスイベントをキャッチする

Flexには直線や曲線を描写するためのLineクラスがあります
このクラスは、自身はSkinnableComponentではなく、親クラスのGraphプロパティを操作して線を描写します

つまり、Lineクラスではほとんどのイベントをキャッチできません
しかし線をクリックした際のイベントやなにやらを取得したいと思うのが人情です

そこでLineクラスをいったんGroupなどのコンポーネントに格納します
そのGroupコンポーネントでマウスクリックなどのイベントを取得すれば、Lineに対するイベント処理ができます

ただし、実際このように組んでも思うように動きません
なぜかというと、Lineで描写した線のx,y軸の最大値と最小値の範囲に矩形(長方形)型のGroupコンポーネントが存在するからです
なので、なにも存在しないように見える場所でも実際にはイベントを取得してしまうといったことが起こります

上記のやり方では、Lineクラスのイベントのみを正しく取得できないのかというと、そんなことはありません
一つプロパティをせっていするだけで、正しく動作します
  • mouseEnabledWhereTransparent=false;
これをGroupコンポーネントに対して設定するだけでLineクラスで描写した線のみに反応してイベントを取得できます


2011年12月3日土曜日

地球ドラマチックのサメ肌 感想

今日は指向を変えてテレビ番組の感想を書きます
地球ドラマチック 「サメの肌から大発明~高性能材料が世界を変える~」
今回の題材は、タイトルの通り高性能な材料の話です

出だしは鮫肌のすごさについてでした.サメ肌水着のおかげで水の抵抗を受けにくいことは有名ですが、実はサメ肌と似たような構造をするだけで細菌の繁殖が抑えられることは知らない方が大半だと思います.
ここで面白いと思ったことは、材料ですべての性質が決まるわけではない、形が変わることでも性質は変化しうることです.

また、ヤモリは足の形のおかげで壁にぴたりと張り付いて好きなときに足を剥がすことができます.これは分子間に働くファンデルワールス力のおかげだそうです.
実際にこのヤモリの足を参考にしたロボットが壁を上れるようになっています.おもしろいですねw

そして非ニュートン流体の応用についてです.ウーブレックと呼ばれる液体は、強い衝撃を受けると固く弾力性が高くなり、ゆっくりとした衝撃では液体として反応します.がんばったらウーブレックの上を走り抜けることができるそうです.
また、液体MR流体と呼ばれるものは磁石に反応して固くなりまるで固体のようになります、磁石から離すと液体に戻るというものです.

ほかにも、波をすり抜けるようにして見えなくする技術や形状記憶合金を利用した人工筋肉などが紹介されました.

この番組を見て、世の中には色々なものがありまだまだ自分の知らないものや新しいものが開発されているのだということを実感しました.

2011年12月2日金曜日

Docomo版iPhoneがでるか!?

次期iPhoneがDocomoから発売されるのではないか、という噂が立っています.

ソースは日経ビジネスオンラインのこの記事
http://business.nikkeibp.co.jp/article/topics/20111130/224702/

どうやらLTEに対応したiPhoneをDocomoの回線から出したいので、AppleとDocomoが販売に合意したと言うことらしい

その後すぐに、Docomoの広報が合意などを否定する発表をした
http://www.nttdocomo.co.jp/info/notice/page/111201_00_m.html?ref=gp_top

私は、この発表があまりにも早いので逆にiPhone販売が事実である可能性が高まったと思う
元々iPhoneは諦めていないと言い続けており、ここで否定すると言うことは逆に守秘契約などを結んだと考える方が自然である(auの時はノーコメントであり、今回は否定したため販売の可能性を無しと判断するのは早急だろう)

ただこれを聞いたときは嬉しかったが、冷静に考えればDocomoにとってiPhoneを販売するのは必ずしもメリットが大きいわけではないはず.
なぜならDocomoはiモードという、よくできた集金システムを自社ないで囲い込んでいるから.
iPhoneを発売してしまうと、iモードでDocomoに入ってきた金がApp Storeに流れることになるだろう.

しかしiPhoneがauから発売されて、純増数が三位になってしまったので、その危機感からiモードとiPhoneの共存を進める戦略に変えたのかもしれない.

事実かどうかも分からないので来年の夏まで、期待せずに期待して待つことにします.

2011年11月2日水曜日

Google Developer Day 2011 Japan Tokyo (感想編)

というわけで感想編

一言で表すと「めちゃめちゃ楽しい&ためになった!」(一言じゃないって突っ込みはなしでw)

それだけではそっけないのでそれぞれのセッションごとに感想とか書いていきます
まず全体のスケジュールは、こんな感じです
基調講演(10:00~12:00)
---昼---(12:00~13:00)
1セッション(13:00~13:45) HTML5最前線
--15分休憩--
2セッション(14:00~14:45) デベロッパーツールのティップスアンドトリックス
--15分休憩--
3セッション(以下同じ) 今までにないサイトを作る:HTML5による最新ウェブアプリ
--15分休憩--
4セッション Chromium開発を支えるクラウドの技術-Googleのクラウドコンパイラ
--15分休憩--
5セッション Googleのエンジニアの日常
--15分休憩--
6セッション(18:00~19:15) Ignite
解散

以上をなるべく時系列に感想を書いていきます

基調講演
人が多かったのですが早目に受け付けしたので、Main Hallの真ん中あたりでみることができてよかったです
ここで興味深かったのは二つあります
一つ目はAndroidデバイスが急速に普及してきていることで会場の大半の方が持ってました
CSのデモをみてAndroidデバイスが欲しくなってしまった、買い時か・・・?w

二つ目が一番驚きました、なにかというとChromeのDeveloper Toolsです
これはChromeに内蔵されているのデバッグ機能なのです
何がすごいかというと、基本的にJavaScriptは大半が難読化されていて見ずらいのですがワンクリックで自動整形して見やすくできます
さらにブレークポイントまで設定できて、デバッグができるという優れもの!
ほかにもエディタのように使えたりして、めちゃめちゃ便利だなと思いました

第1:HTML5最前線
へーと思ったことは、HTMLをよりスマートにすることができるってところ
たとえばアニメーション表示する際にブラウザの表示能力以上にCPUを使わないよう制限する,バックグラウンドタブになったら処理を行わないことです
いままでブラウザの処理能力とかあんまり考えたことなかったのでなるほど!と思いました

ほかにもプリレンダリングといって、先にWebページを読み込んでおくことでページの表示を高速化とか便利だなと思いました

第2:デベロッパーツールのティップスアンドトリックス
個人的にこのセッションが一番おもしろくて為になったと思います

まず第一にChrome Developer ToolsはWebアプリケーションである
⇒Developer Toolsを別のDeveloper Toolsから開いてデバッグすることができる
これ聞いた時、素直に感心しましたw

個人的に便利だと思ったのは、スタイルの属性値を設定するときなどに自動的にコードを保管する機能です(知識が浅いのでw)

また編集部分がリアルタイムで更新されたり、編集したコードの履歴表示やそのまま上書き保存可能になっています

まとめるとかなり便利なデバッグツールになっているってことです
今度から使ってみることにしますw

第3:今までにないサイトを作る:HTML5による最新ウェブアプリ
このセッションは少し難しく感じました(スピードが速かったのかな?)
印象に残っていることはHTML5で実装したterminalです
http://www.htmlfivewow.com/demos/terminal/terminal.html

あとはファイルをHTMLにドラッグ&ドロップしたり、クリップボードの値を受け取ったりができるといったことろです

第4:Chromium開発を支えるクラウドの技術-Googleのクラウドコンパイラ
このセッションで説明したものは、gomaと呼ばれるChromiumのコンパイルシステムです
このシステムの解説ばっかりなので詳しいものは他の方が書いてると思うので省略します
結果だけ書くと、クラウド環境でコンパイルを行うことで1h21m⇒9mに時間を短縮した

このセッションの内容も結構難しくて、あまりコンパイルとかしたことがなかったので聞きなれない単語などがあったりして勉強不足を痛感しました・・・;

第5:Googleのエンジニアの日常
グーグルの新入社員の研修とかについてさらっと説明していました
グーグルの体質として大企業なのに、オープンソースプロジェクトでは普通の開発手法などを取り入れて運用できているのがすごいとおっしゃっていました
ただ僕自身はオープンソースには携わったことがないので、そんなものなのかなと思って聞いていました

グーグルの社風というかルールでコードレビューを行うということがあります、これは実際にかいたコードをいろいろな人にチェックしてもらうというものです
そこで詰めのあまい設計を行っていると容赦なく突っ込みが来るそうです(gkbr
ですが自分の書いたコードを評価してもらえるというのはいいですね!
まだまだ未熟者なのでコードがうまくかけていなかったり設計が不十分だったりする部分を指摘してもらって次に生かしたいですね

第6:Ignite
実はこのセッションは途中から参加したので全体的なまとめはできませんが・・・
数人のエンジニアの方がそれぞれ短いプレゼンを行っていくもので、いろいろなプレゼンを聞くことができたのでとても参考になりました
ここでGoogleのオープンなプロジェクトに参加して、できる範囲からcontributeして貢献してみようかなと思ったりしました、ちょっと試してみます!!
てかDevQuizの答え合わせ的な感じのトークでGoのPNG解析が(確か)16行くらいで終わるとか聞いた気がするんだけど、意味不明なソースコードはっつけてるから恥ずかしいw
あとGoogleさんの検索サービスとかがアクシデントで停止してしまうことはあるのか?って質問に対して、サービスが停止することよりサービス自体が無くなることの方がおおいって返答があって面白かったですね~


全体的には結構ラフな雰囲気のセッションで客席からつっこみが飛んでたりしておもしろかったですw
最後のGDD48のダンスとかもめちゃめちゃうけましたwww
死海文書とかもおもしろかったですw



ってことで総括すると参加してよかったですw
来年もあればまた参加したいと思います、そしてなにかオープンソースのプロジェクトをのぞいてみようかなとおもったり、Android端末で開発でもしてみようかなと思ったり、HTML5でWebページを作ってみようかなと思ったりするような刺激的で楽しいイベントでした.


最後にボランティアのスタッフの方やスピーカーの方々、素晴らしいイベントを開催してくださってありがとうございました

2011年11月1日火曜日

Google Developer Day 2011 Japan Tokyo (戦利品編)

こんにちは、本日はGoogle Developer Day2011(GDD)に参加してきました ということでいろいろ戦利品や感想などを書いていきます ということでまず戦利品

GDD2011での戦利品

左上が今回のTシャツです
なかなかおしゃれなデザイン

左下は個人・企業のブースでもらった資料ですAndroidタブレット5250円引きのクーポン
(GALAXY Nexus触ったらもらえた)

他にAnubisの資料など




右側は公式ブースや入場時にもらった物です

右上から,使わなかった3Dメガネ(どこかのセッションではつかったらしい)

Androidの青歯コントローラ(らしい)

中央寄りのカードはNFCのゲーム用(?)

ブースでもらったGoogleTVの名刺や資料

Google Chromeのシール(Chrome Bookでもらえた)

+1シール(気に入ったブースに張る用、あんまり貼れなかったw)

Attendee(弁当受け取ったりTシャツ受け取ったらスタンプ押されました)

交換用のバッチ(半分くらいしか交換できませんでした・・・^^;)

あとはTwica,caccoのシールなどをもらいました


ということで、戦利品はこのくらいですね

次に感想書いていきます!

2011年9月25日日曜日

Google Developer Day 2011参加確定しました

実は結構前に通知メールが来ていたのですが、なんだかんだ更新してませんでした・・・(汗
20日に事務局さんから参加確定のおしらせがきました.


この度は「Google Developer Day 2011 Japan」にお申し込みいただき、誠にありがとうございます。

先般ご回答いただいた DevQuiz の結果、GDD 2011 にご参加いただけることが
決定いたしましたのでご連絡いたします。

なお参加証につきましては、10 月上旬より順次お送りいたしますので、今しばらくお待ちください。


こんなメールでした.
結構な労力をDevquizには注いだので参加できるとわかると嬉しいですね.


そんなこんなで参加証については別途送られてくるそうです



2011年9月12日月曜日

GoogleDeveloperDay 2011のDevQuiz

現在DevQuizに挑戦しています.DevQuizとはなにかというと

GoogleDeveloperDayに参加するために解く必要のあるクイズで、合計得点が高い人順に参加賞が与えられるようになってます

配点はこんな感じです
40点:ウォームアップクイズ
30点:WebGame,Go!,Android,Google Apps Script,一人ゲーム
50点:スライドパズル

内容はというと

ウォームアップクイズが調べれば答えのわかるもので、AndroidやGAEなどGoogleのサービスや技術に関する質問が5問ほどありました.


ここからは私が実際に回答した問題の感想です


WebGameは神経衰弱でGoogleChromeのExtensionを利用して解いていくものです
これはサンプルのExtensionが与えられるので拡張して自動で解くようにする問題でした(最後の方は数百枚のカードがありました)


Go!はPNG画像ファイルをGo言語で解析して、何色使われているかを調べる問題です
IDATチャンクに実際の画像データが入っているのですが羅列される順番がcolortypeによって変わります
サンプルのコードではcolortype6のものだったのでそれだけを念頭にプログラムを作成したら、不正解になる・・・
そこでわざとcolortypeをはき出させるようにして、チェックするとcolortype2の画像も検証されていたのでその部分を実装しました
RGBの順でアルファが必ず255って書いてあったから、アルファが必ず含まれるものだと思っていましたw


スライドパズルは結構鬼畜な問題です
はっきり言って難しいです.
この問題ではパズルの解法アルゴリズムを考える必要があります
しかも普通のパズルと違い壁という通ることのできないマスがあったり、マス目の数が幅3~6・高さ3~6という変則的な数なので一律のアルゴリズムでは効率が悪かったりします
というかメモリが足りなかったり、難しい問題にかかりっきりになると効率が悪かったりするみたいです・・・


あとでソースコードも公開してみます.

2011年9月2日金曜日

JavaとActionScriptのソケット通信時のEOFError

JavaとActionScriptでソケット通信を行う際に
JavaではDataOutputStreamのwriteUTFを利用して、ASではSocketクラスのreadUTFを利用すると通信ができます.

ただしプログラムを組んでみてわかったのですが、このメソッドを利用するとどうもWindowsXPと相性が悪いらしく
連続で送信や受信を行うと(もしくは特定の文字列が含まれると)EOFErrorが頻繁に発生します


なので簡単なプログラムならばread/writeUTFで問題ありませんが、実用的なものを作成するときはおとなしくBufferedWriterのwriteとSocketのreadUTFbytesを利用して実装した方が無難です

2011年8月5日金曜日

森見登美彦氏の四畳半神話体系を読んで

最近よく本を読みます
主に小説ですが、私が好きな小説家は森見登美彦氏なので彼の作品でまだ読んでいないものを中心に読んでいます
そこで四畳半神話体系を読んだのでその感想を記します
この作品はアニメ化もされスピンオフというか関連本が何冊か発行されているのでおもしろいのだろうと思って手をつけました

読み終えた感想ですが、面白いが絶賛するほどではないというのが本音です
ただ私が好きな屁理屈な言い回しなどがふんだんに使われていたので十分楽しみました



この本を読んでみて感じたことは、森見氏のペンギンハイウェイは本当に森見氏っぽくない作品だなとしみじみ思いました
もちろんほかの作品を読んでいないので先入観と違うと感じているだけかもしれません
(むしろ最初に読んだ夜は短し歩けよ乙女のほうが特殊なのかな?)
しかしまだまだ読んでいない森見作品があるのでどんどん読んでいこうと考えています

2011年8月3日水曜日

JavaとActionScriptでのソケット通信について

JavaとActionScript間のソケット通信はJava側にDataOutputStream,DataInputStreamクラスのwriteUTF,readUTFメソッドを使い
ActionScript側ではSocketクラスのwriteUTF,readUTFメソッドを使うことで相互に文字列をやりとりすることができます.

このときActionScriptではイベントリスナーにソケットからデータを受け取る動作を登録する必要があります、しかしJava側のwriteUTFがActionScriptよりも高速に実行されてしまうとイベントリスナーで不具合が発生するようで、Java側で送信した回数よりもActionScriptで受信する回数が少なくなってしまうようです.

強制的にJavaの送信間隔を長くするか、一定以上の文字列がたまってから送信するようにしたがイマイチ動作が安定しないためしっかりとした原因を探ろうと考えてます

追記:2011/08/05
送信する際にJava側でThread.sleep(200)で送信の間に間隔を持たせることでただしいタイミングで通信することができました.
このあたりの値はプログラムによって違うと思いますが私の環境ではこれがベストタイミングのようです.

追記:2011/09/01
受信可能フラグを利用した方が安定するみたいです
送信の際にJava(Server)でいったん送信を行ったらフラグをfalseに設定します
次に送信を行うためにはASから受信可能Message(任意の文字列"can,receive"など)を受け取ってフラグをtrueに設定する必要があるという設計にしました

ActionScriptのXMLについて

ActionScriptでXMLを扱うときの操作方法などについて簡単に覚え書きします

・生成方法
XMLの生成
var sample_xml:XML = new XML();

子要素の追加方法
sample_xml.appendChild('<sample_child />');

属性の追加方法(id属性に"sample"を設定)

sample_xml.@id = "sample";

・操作方法(値の取得)
要素の値(タグで囲まれた値)を取得

sample_xml.sample_child;

属性sampleの値を取得
sample_xml.@id;

子要素sample_childのid属性を取得
sample_xml["sample_child"].@id;


2番目の子要素のid属性を取得
sample_xml[1].@id;

2番目にでてくる子要素sample_childのid属性を取得
sample_xml["sample_child"][1].@id;


こんな感じです、ちょいなちょいな追記する予定

2011年7月24日日曜日

iTunesのアルバムアートワーク取得方法

今回はiTunesでアルバムアートワークを取り込む方法です

まずBroadwayというフリーソフトをダウンロードしてインストールします。(インストール時にコマンドプロンプトとかでるけど心配は無用です)

そしてiTunesを起動して音楽を再生するだけで、再生中の曲に関連した画像が表示されます
ここでアートワークに設定したい画像アイコンを右クリックして「アルバムアートワークをiTunesに転送」を選択すると再生中のアルバム全曲にアートワークが設定されます

以上でアートワークの取得設定は完了です

このBroadwayでは同時に歌詞検索なども行えるので歌詞を見ながら音楽を聴いたり、歌詞をiTunesに転送などもできます
最近はiTunesがデフォルトでアートワークを取得してくれるのであまり出番はありませんが昔は全然取得してくれなかったのでこのソフトがとても便利でしたw

2011年7月23日土曜日

森見登美彦氏のペンギンハイウェイの感想

先日森見登美彦氏のペンギンハイウェイを読んだのでその感想を記そうとおもう

どうらやら日本SF大賞なるものを受賞した作品らしい

しかし私は残念なことにSF映画には精通しているがSF小説には縁がないため批評をする知識がないのである。だが素人として率直に感じたことを述べようと思う

まず第一に私は森見氏の小説の大ファンである
夜は短し歩けよ乙女などに代表される大学生の男臭い屁理屈や偏屈などの表現が大好きなのである、その観点からするとこの小説では主人公が小学生であるため屁理屈があまり男臭くなく軽い表現にとどまってしまっている
小学生という年齢を鑑みると妥当な屁理屈であり、森見氏の表現力はさすがだと思ったが私には物足りなく感じてしまった

次にSFという点についてだ、この点については私はほかのSF小説なども読んだことがないので間違いなどがあるかもしれないが勘弁して頂きたい
さっそくだが本作品は本格SFを目指しているのではなくファンタジーを織り交ぜた軽いSFという程度にとどまっていると感じた
もとから森見氏の小説はファンタジーものであるため、そこに少しSFというスパイスがかかっているといった認識でよいとおもう
これについても構成はしっかりしており、楽しく読むことができたがSFとしてみると奥深さが物足りないと感じた

しかしこの作品をたいそう気に入っている方もおられるだろう、私がこのような評価をつけるのは大変無礼であると思うが、そこは一読者としての意見と思って軽く流してほしい

ここまで勝手なことを書いてきたが、この文章を読んで少しでも気になったなら是非購入するなり図書館で借りるなりして一度読んでみてほしい

ペンギン・ハイウェイ

iTunesのコンピレーションについて

iTunesといえばiPhoneやiPodを利用する際に必要な音楽管理ソフトですね

Macを作成しているAppleが作ってるため、簡単な動作ならば直感的にできます
しかし詳しい操作などはちょっとわかりにくかったりするのでそのあたりを解説していきます

まずコンピレーションについてです、コンピレーションとは複数のアーティストの曲をまとめたアルバムのことです

これがどうしてiTunesに関わってくるかというと、アルバム単位で表示したときにiTunesではアルバムとアーティストで区分されます
そのためコンピレーションを扱う際にアルバムが分割されて表示されてしまいます

その際アルバム単位でしっかりと表示されるようにするためには


このようにアルバムの曲をすべて選択した状態で右クリックをして
プロパティ→オプションタブ→コンピレーションの一部を「はい」
という設定にします。これでアーティストが違っても同じアルバムであると認識されるようになります

この設定をすることで表示形式をグリッドにしたときにまとまりがあって見やすくなります!

2011年7月5日火曜日

FlashとFlexの違いについて(2)

自分で記事を読み直してどうも解りづらかったので前回のエントリを簡単にまとめてみます
















こんな感じになります。
どちらでも同じようなFlash(swfファイル)は作成可能ですが、アニメーションやデザイン重視ならばFlash Professionalで作成した方が楽であり品質の高いものが作れます

逆にTextinputや表などの決まった部品のみを利用する業務システムなどはFlexで作成した方が品質が高く、作成も容易になります。

ようは作成する目的物によって開発手法を分けた方が楽ってことです

2011年6月2日木曜日

ActionScriptとjavaのソケット通信がうまくいかない件について

Flexの内部でactionscriptを動かしてjavaとsocket通信させるFlashアプリケーションを作ろうと思って、Flash Builderでソケットプログラムを書いた

コーディングは問題なく終わり、開発環境では実行すると問題なく動くので実際にwebサーバーにあげて動作テストすると・・・うごかない(--;)

Client側でデータを送信していないにもかかわらずServer側のreadメソッドが実行されて、EOFErrorが発生してしまっていた

最初はsocketが切断されているのかと思ったが、どうやらsocketを生成できていないみたい・・・
なぜFlash Builderの実行では動作しているのに、実際の環境では動かないのかと考えてセキュリティサンドボックスじゃね?ってことになったのでサンドボックスについて調べた(セキュリティサンドボックスは安全な砂場でしか動作させねーよって意味)

セキュリティサンドボックスの種類は4種類あって
・local trust:信頼できるファイルとして手動設定したもの、ネットワークもローカルもアクセス可能
・local-with-filesystem:ローカルのデータにのみアクセス可能
・local-with-network:ネットワークにのみアクセス可能
・remote:リモートから取得したファイル、filesystemかnetworkにのみアクセス可能でアプリ作成者がそれを決定している

このように分かれている
開発環境では自動的にlocal trustに設定されているためネットワークにアクセス可能であり、webサーバにあげるとremoteとなり設定がfilesystemになっているのではと考えた
そこでFlash Builderのプロジェクトを左クリックしてプロパティからコンパイラのオプションを表示して、
use-network=true を追加することでサンドボックスをlocal-with-networkに明示的に指定してみた

結果は・・・かわらず。それもそのはずで、use-networkオプションはデフォルトでtrueになっているのでかわるわけがないとw
ローカル内だからクロスドメインポリシーファイルが必要なわけもないし・・・


んで、もう一度悩んでついに原因を発見しました

それはソケットポリシーファイルがなかったことです!
どうやらFlash Player 9,9,124,0以降ではソケットを生成する際は、接続するサーバー側に必ずソケットポリシーファイルが必要となるという変更が加わったそうです
詳細はこちら↓

ここにあるサンプルスクリプトを落としてStandaloneフォルダのスクリプトを実行させて、ソケットプログラムを動かすと・・・
無事に動作したぁ~


てことでactionscriptでソケット通信をする際にはサーバー側にソケットポリシーファイルを配置しておくことをお忘れなく!

2011年5月25日水曜日

FlashとFlexの違いについて

追記(2011/07/05):

新しいエントリでもっと簡潔に説明しました



Flashでwebアプリを開発しようとしていろいろ調べているうちにFlexというものをみつけた
どうやらFlexとはフレームワークのことらしい、だがいまいちよくわからないので詳しく調べてみた

まずFlashとFlexは違う物なのか、ということについて
基本的に同じです
というか、Flexで作成するのがFlashアプリケーションなので比較対象(用語の定義)が間違っています
正確には、Flash ProfessionalなどのFlash開発環境とFlash BuilderなどのFlex開発環境を比べる必要があります
どちらもFlashアプリケーションを作成するという意味では同じでありswfファイルを作成できてwebブラウザでも動作します

では何が違うのか、それはFlashアプリを作成するプロセスは全然違っていることで
Flashがデザイナ・アニメーター向けなのに対して、Flexはプログラマ向けの開発環境となっています

具体的にいうとタイムラインや時間の概念がつよくFlash作成の概念を一から学ばないといけないのが従来の開発手法(Flash Professionalなどで作る物)であり、プログラムのようなコードメインでなおかつデザインも容易に作成できるようにしたのがFlexです

ちなみにFlexの開発環境ですがAdobe社はFlash BuilderというFlexによるFlashアプリケーション開発用のソフトウェアを販売していて、このソフトはeclipseを元に拡張してあるので、見た目から操作方法までeclipseそっくりです。javaプログラマーにはとってもうれしいですね
ついでに学生であれば同ソフトは申し込むだけで無料でライセンスがもらえます
http://www.adobe.com/jp/products/flex/faq/


ということで結論は
Flash:従来のFlashアプリケーションを作成する方法
Flex:時間の概念などをとりのぞいてプログラマーにわかりやすい作成方法

ということになります

2011年5月14日土曜日

Googleのウェブアルバム Picasaがすごい!!

今日はgoogleの提供してるウェブサービスであるPicasaについてちょっと書こうと思います

まずPicasaとは画像をアルバムという単位で扱って、管理するウェブサービスです

使い方は、簡単でアルバムを作成してそこへ画像をアップロードするだけです
詳細な設定も可能でアルバム毎に名前や公開する範囲の設定(ウェブで一般公開、リンクを知っている人全員、限定公開)などができます
公開設定については風景画や料理の写真などは一般公開ですべての人が検索などで閲覧可能な設定がおすすめです。逆に仲間内で利用したり、自分の顔が写っている写真などは限定公開やリンクを知っている人のみの設定にすることをお勧めします。
ここで注意が必要なのは、公開設定をリンクを知っている人にするとURLを知っていれば誰でも閲覧できるということです。なのでブログなどにURLを乗せてしまったら公開しているのと同じで、自分が許可した人にのみ閲覧可能にするには限定公開を選択しておく必要があります


前置きはこれくらいにしておき、私がすごいと思った点は、顔認識の精度がかなり高いということと、Picasaのwindowsアプリが画像管理ツールとしてかなり優秀だということです
windowsのアプリとしてPicasaをダウンロードしたら、いろいろなフォルダを探して画像を表示してくれます。私の場合は写真などの画像はすべてPictureに入っているのでそこだけを参照するようにして余計なアイコン画像などは参照しないように設定しました
この設定は、ツールバーの「ツール」→「フォルダマネージャ」からおこなって参照するフォルダを追加したり減らしたりすることができます

そしてアプリで見たい画像などを表示できたら、左のメニュー項目から人物を選ぶと参照しているすべての画像の中から人の顔を認識して取り出してくれます、そして人物に名前をいれていくと似ている顔の場合は候補に名前がちゃんと表示されるようになっています
候補はあんまり精度が高くありませんが、人の顔と判定する認識率はかなり高かくて、テレビに映ってた人の顔も判定できるくらいでした(なぜかせんとくんも顔認識されてましたw)

顔認識以外でも画像の読み込みはかなり早いので画像ビューワとしても優秀で、ウェブのPicasaにも簡単にフォルダごとアップロードとかができてとても使いやすいですね
またウェブのPicasaも複数人とアルバムを共有することによって、画像の管理がDropboxを使うよりも簡単にできると感じました。DL制限とかもできますし、googleマップと連携してGPS情報がのっている画像であればその場所を地図に表示したりして各サービス間の連携もすばらしいです

眠いので文章がうまくまとまらない・・・、今回はご勘弁をw

2011年4月22日金曜日

eclipseの導入&日本語化-ubuntu10.04-

追記:2012/09/07
現在はこのやり方ではsun-java6-jdkはインストールできないようです。また別途記事を書きます。

ubuntu10.04ではデフォルトのリポジトリにSUNのJDKが入っておらず
$sudo apt-get install sun-java6-jdk

とコマンドを打つだけではインストールでません、どうやらオープンソースを取得するようになっています
そのためsun-java6-jdkがほしければ自分でリポジトリを追加する必要があります
$sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
でリポジトリを追加します。
$sudo apt-get update
$sudo apt-get install sun-java6-jdk
と入力することで、インストールできます



次にeclipseを導入します,個人的にインストールの場所を管理したいのでapt-getでは行いません
http://www.eclipse.org/ アクセスしたら、Downloadをクリックして自分のOS環境にあったものを選択したのち、Eclipse IDE for Java EE Developersをダウンロードします.
(ほかにもEclipse IDE for Java DevelopersやEclipse Classicなどがありますが、Eclipse IDE for Java EE Developersはこの二つの機能に加えて、いくつかのプラグインが元から組み込まれているのでいわば高機能版です)

これを任意のディレクトリ(/optあたりが個人的にお勧め)に展開します
このときおそらくsudoでやらないとパーミッションエラーがおこるので
$cd /opt
$sudo tar zxvf ~/download/eclipse.tar.gz
として解凍します、この際もしかしたらeclipseディレクトリが自動生成されないかもしれないのでそのときはmkdirでeclipseのディレクトリを作成してそこへ解凍したほうがわかりやすいです

あとはこの解凍したeclipseディレクトリ内のeclipseファイルを実行するだけで起動します
ですがコマンドとしての登録をしないと使いづらいので
$sudo ln -s /opt/eclipse/ecliplse /usr/bin/eclipse
$sudo chmod +x /usr/bin/eclipse
とコマンドを実行して、シンボリックリンク(ショートカット)を作成してそれを実行可能にします


ここまででeclipseは実行可能ですが、このままではまだ日本語化はされていない状態です
「おれっち帰国子女だから!」って人はそのまま使ってくださいw
残念ながら私は英語苦手なので日本語化しますw

まずは http://mergedoc.sourceforge.jp へアクセスしてPleiades本体ダウンロードという項目から安定版をDLします
それを先ほど作成したeclipseディレクトリ内で解凍します
$cd /opt/eclipse
$sudo unzip ~/download/pleiades_x.x.x.zip
これで自動的に解凍したplugins,featuresがeclipseディレクトリ内に追加されます

そしてちょこっと/opt/eclipse/にある設定ファイルをいじります

$sudo emacs eclipse.ini でエディタを開いて最終行へ下の一行を追加します
-javaagent:/opt/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

これでコマンドラインから
$eclipse -cleanを一度実行したら、以後は$eclipse だけで日本語化されたeclipseが立ち上がります

作成したシンボリックリンクを実行可能にするのは結構忘れやすいので注意してくださいね~。それで嘆いた過去がありますw
ちなみにpleiadesを使う理由は、メジャーなプラグインも日本語化してくれているので別途プラグイン別に日本語化する作業がなくなるというメリットがあるからです.





2011年4月20日水曜日

JTableの列を非表示にする

JTableを利用するときに、内部に情報を持つがGUIには表示したくない場合の処理を書きます

まずJTableを利用する際の、基本的な概念としてビューとモデルがあります
ここではJTableがビューであり、JTable内の情報(配列など)がモデルです

//列名
String[] columnTitle={"商品名","産地","値段"};

//モデル
String[][] model_data =
 {{"みかん","わかやま","100"}
  {"りんご","あおもり","150"}
  {"ぶどう","ながの","400"}};

//ビュー
JTable table = new JTable(model_data,clumnTitle);


これでJTableが生成され、model_dataの情報をGUIへ表示するようになります。ここで産地を表示したくないという状況になったとします。しかしmodel_dataの値は保持したままにしたい
その際には

table.removeColumn("産地");

とすれば産地の列のみがJTableのGUIから削除されます、もちろんmodel_dataの中身には産地情報が残ります
表示したくない列は最初からJTableに与えないようにしてもいいのですが、ここで説明したのはモデルのデータをまとめてビューに表示させて、後から列を削除するやり方です

書いてて思ったけど、当たり前すぎてエントリを書く意味があったのか疑問に思ってしまったw
Web Analytics