2007年12月24日月曜日

Flexで画像を拡大・縮小表示したいとき

Flexで読み込んだ画像を縮小表示したい時で、

・縦横比率はそのまま保持したい

・縦または横方向の最大値を指定して、その中に収まるようにしたい

ときには、以下のように指定すればいいみたい。

<mx:Image maxHeight="400" maxWidth="400" scaleContent="true" horizontalAlign="center" verticalAlign="middle"/>

horizontalAlignとverticalAlignを付けているのは、縮小時に左上に寄ってしまうから。

本当は、コンポーネントのサイズ自体を変えた方がいいんだろうけど、指定の仕方がわからなかったので、こうしています。

この指定方法ならば、コンポーネントサイズは変えず、その中で上下左右方向に中央寄せし、指定サイズ内に縦横比率を保ったまま縮小してくれるみたい。

minHeightとminWidthを使えば、拡大もできそうですね。

Flexで日本語をリアルタイム処理したいとき

TextInputのtextInputイベントでは、日本語文字列を1文字づつ拾えるだけで、文字列としては拾えない。ペーストの時は拾えるけど。(たぶん、日本語確定時に1文字づつ数msecぐらいのタイムラグがあるんだろうど)

文字列として何か処理を行いたい場合は、Timerと併用して

・textInputイベントでtimer.start()する

・timerから100msec後に呼んでもらい、TextInput.textやTextInput.htmltextを取得する。

とするとうまくいく。

ちなみに、TextInputに入力したものを何かしらの判定を行い、色を付けたりした場合、

・TextInput.htmltextにタグ付きの文字列を入れる

・この状態でTextInput.textから文字列を得ると、タグなし状態の文字列が取得できる。

という使い方が出来るので、入力されたものが正しいかどうかをリアルタイムで検証するときなどに使えそう。

2007年12月23日日曜日

Flexで音が鳴らないとき

<mx:SoundEffect />を使ってmp3などの音を慣らそうと思っているけど、条件分岐などのためにASからsoundEffect.play()などで鳴らしたい場合、mp3のロードは成功しているのに、音が鳴らない場合があります。

※soundEffectはインスタンスだと思ってください

そんなときは、

soundEffect.target = panelObject

など、親や実際にクリックなどの動作を行うオブジェクトを入れておくと、鳴るようです。

たしかに、

<mx:Canvas showEffect="soundEffect"/>

などとしておくと、初期か終了時にはtargetに親オブジェクトが入っている。

ソースを追った訳ではないけれど、イベントフローなどの関係で必要なのかな。

こういう構造になっているのだから、ASからSoundEffecdtを使うのは、使い分けが間違っているのかもしれない。(Soundオブジェクトを直接使う方がいい?)

2007年12月22日土曜日

Leopardをクリーンインストールしたら入れておくもの

おいらはSE兼PG。Windowsも使うがLinux系を使いたい。windows上でも不満が出ない程度にツールをそろえている。MacはUNIX文化圏のものが多いので使っている。Macに移って日が浅いので、winで出来てmacでできないものは、今の所遭遇してない。

作ったアプリはLinux上で動かすことが多い。

PHPとRubyとFlexを使う。デザイナー的仕事はできない。

■必ず入れるもの(appとウィジット)

appCleaner(汎用アプリケーションアンインストーラ)

appFresh(汎用アプリケーションバージョンチェッカ/アッブデータ)

CoRD(WindowsRemoteDesktopのMacクライアント)

cot_editer(日本語も問題ないテキストエディタ)

eclipse(汎用IDE。PHPはPDTプラグインで書く)

ecto(オフラインでブログを書くとき使うもの(名前わからん))

Firefox(ブラウザ。firebugと合わせて基本。重い。けどsafariには行けない)

GoogleDesktop(gmailや他のPCも検索できるのでquicksilverよりこっちがいい)

Macport(Mac用のオープンソースもののパッケージシステム)

porticus(macportのGUI)

NetBeans6.0(RubyonRailsはこれで書く)

MySQL tools(AB社からリリースしている純正もの。あまりこだわりはないphpMyAdminでもよい)

the unarchiver(ファイル解凍用ソフト)

VYM(マインドマップ描画ソフト)

■入れておいた方が便利なもの

adium(汎用IM)

skype(IM兼ボイスチャット)

amadeus(音声波形編集ソフト)

ComicViewer(書籍ビューア)

CyberDuck(FTP/SFTPクライアント。ただし使ったことはない)

senuti(ipodから曲を抜き出すもの)

MacFUSE(SpotlightFSやsshFSを使うために必要)

SpotlightFS(Finderのようにフィルタ条件を与えて引っかかったものをディレクトリの中のファイルのように扱うファイルシステム)

sshFS(ssh経由でリモートのファイルシステムに接続し、それをローカルにあるかのように扱うためのファイルシステム)

subcommander(subversionクライアント)

submerge(subversionクライアント?(ファイル間比較))

thunderbird(メーラー。ただしブラウザでgmailを使う方が多い)

VLC(汎用ムービービューワ)


■微妙なもの

多数(あえて書き出すものでもない)

TracとredMineとretrospectivaの比較

会社でTrac→redMineとわたって、個人でretrospectivaを使っているので、実際のところどうよ?ってのをまとめてみました。


■Tracの利点


・この分野の草分け?


・記事などがたくさんある。


・オールインワンパッケージがある


・日本語環境で問題なく使える


■Tracの欠点


・1プロジェクト1Tracなので、複数のプロジェクトを常用するなら使いづらい。


・オンラインパッケージを使わない場合、pythonとかpython系ライブラリのインストールが非常に面倒(日本でpythonものってあまり使うことないよね)


・日本語と外国語の併用はできない


■redMineの利点

・1redMineに複数プロジェクトを登録できるので、会社で常用するなら使いやすい。プロジェクトやユーザの追加もブラウザ上から可能。

・会社で管理職が下の動向見るのにはよさそう。


・実際にタイ人チームの管理に使ってます。


・個人的にはMS臭かろうが、ガントチャートが好き。


・日本語は90%ぐらい使える。(一部チェックが甘く、ハングする)


・日本語と外国語をユーザごとに切り替えて使える


■redMineの欠点


・wikiも書けそうと見せかけておいて、実は偽者。あれは本当に使えん。プレーンテキストを入力できるようにした方がまし。(勝手に意図しない変換がかかる)

・RubyOnRailsものなので、運用(起動)にちょっと慣れが必要かも



■retrospectivaの利点


(すま。あまり使ってないから、よくわかっていない)


・1retrospectivaに複数プロジェクトを登録できるらしい(よくわかっていない)

・個人で使うならredmineよりいいかも。


・BlogとWikiがちゃんと使えるので情報発信しやすそう。


■retrospectivaの欠点


・redmineと比べると、プロジェクト同士のサワリだけさらっとみるのはredmineの方が便利そう。

・RubyOnRailsものなので、運用(起動)にちょっと慣れが必要かも



■おいら的使い分け


・今からTracを使うことはないかな。


・会社で複数のプロジェクトを使うなら、redmine


・個人ブロジェクとならretrospectiva



2007年12月17日月曜日

CakePHP 1.2系

個人的にはRuby on Railsが好きなんだが、会社はPHPオンリーで、Rubyを使うと反発が強そうなので、CakePHPを試してみた。

個人的に、Ruby on RailsとCakePHPを比較してみると…

Ruby on Railsの利点

・豊富なプラグイン

・irbを使ったテストやバッチ

Ruby on Railsの欠点

・実行環境はapache1.2+mod_proxy_balanser+mongrel_clusterが現実的な線だけど、PHPと比べるとちょっとおおげさっぽい感はあるよね。

・この構成って、知識ない人は組むことさえできないよね。(わかってしまえばすぐなんだが)

CakePHPの利点

・PHPのノウハウは持っているので、いざというときに安心できるかも。

・配置や実行はPHPらしく、ポン付けで動くのはすばらしいね。

・PHP4/5両対応なのはいいね。

CakePHPの欠点

・ブラグイン少ないね。

・実用的なscafoldないね。

・やっぱRuby on Railsの焼き直し感や後追っかけ感が強くて、追っかけてるCakePHP使うなら、先頭行ってるRuby on Railsす使うのが一番いいのでは?ってやっぱり思うよね。

・irb見合いのものがないから、ちょっとしたテストやバッチを作るのがちょっと面倒だよね。

・PHPでもActiveRecordが使える。ただ、Model.find(:all).toXMLとかできなさそうなのは、Flex使いとしては残念。

Mac OSX Leopard上のデーモン起動ファイル

Leopardにportsいれて、apache2.2を入れたのはいいけど、どうやって起動するのかわからなかったので、友達に聞いたときのメモ Linuxでいう、/etc/init.dあたりの起動用スクリプトは/Library/StartupItems/ とか。これはWindowsでいう「スタートアップ」みたいなものなのかな。 Linuxでいう、serviceコマンドはMacではlaunchctlというコマンドになるらしい。 sudo launchctl load -w /Library/LaunchDaemons org.macports.apache2.plist みたいな感じらしい。 Linuxでいうところの起動用のスクリプトは、Macではplistという形式を使うらしく、これはXMLみたい。たしかに、ターミナルでlocate plistするとたくさん出てくる。 で、macports系のstartupは大半org.macports.xxxにあるみたい。 自動起動したい場合は、 ・plistを作ってテストする ・エラーのないplistを下記自動起動用ディレクトリに配置する でOKらしい。 launchctlのオプションにbootstrapってのがあるけど、これが関係するのかな。 あと、自動起動ファイルの優先順位も system(全体)->library(全体[user定義可能])->user/Library(個人[user定義可能]) みたいになっていて、それぞれ ・/System/Library/LaunchDaemons ・/Library/LaunchDaemons ・~/Library/LaunchAgents となるらしい。ただ、 ・古来よりの/Library/StartupItems

でもOKらしい。

詳しく調べたければappleのwebサイトにマニュアルらしきものがあるらしい。 参考になる記事(てか最初からこれ読んだ方がよいかも) http://journal.mycom.co.jp/articles/2007/12/11/iul01/index.html