WEB/システム/IT技術ブログ

FlexのHTTPServiceを使って、他のサイトのRSSを読み込み、リスト表示をしようとした。
最近では、PHPなどでブログの最近記事の一覧をトップページに出力することは、よくやる手法である。

しかし、Flashの世界では、これが単純にはいかない。
通常の処理で、HTTPServiceで他のサイトのxmlファイルにアクセスにいくと、以下のようなエラーが出力される。

[RPC Fault faultString=”URL へのアクセス中にセキュリティエラーが発生しました” faultCode=”Channel.Security.Error” faultDetail=”送信先 : DefaultHTTP”]

つまりは、FlashやFlexではセキュリティ上、他のドメインへのコンテンツは基本的にアクセスできないようになっているらしい。

Flexをはじめました。

ここ最近の記事を見てのとおり、Flashをはじめたのだけど、プログラマの私にとっては、どうもグラフィックツールやタイムラインはしっくりこない。そこで開発者向けのFlexから習得しようという気になった。

CSのFlashはデザイナ向けのソフトで、グラフィックで際立たせる。一方で、Flexはプログラマ向けで、オブジェクト指向を理解していたり、アルゴリズムに強い人は入りやすく、アプリケーション開発向けである。
しかし、アウトプットはどちらもSWF。やろうと思えば、同じことは実現できる。はずである。。。
というわけで、早速だがFlexを触ることにした。

最近、xampp1.6.8を使い続けていて、エラーが多いと感じる。
詳細は不明だが、とにかくページ遷移のタイミングでApacheエラーなどのアラートが出る。いや、ページは遷移するので、致命的というわけではないが、とにかく不安定な感じは否めない。

一方で、xampp1.7以降でPHP4のサポートが打ち切られたため、PHP4の環境を作れる1.6系は捨てがたい面もある。
世の中、まだPHP4で動いてるシステムも結構あるので。

そんな場合は1.6系と1.7系を共存させちゃおう!
特に難しいことはないです。違うディレクトリにインストールするだけ。
例えば、「C:xampp1.6」と「C:xampp1.7」にそれぞれインストールするなど。

注意することは、同時に起動させないこと。ポートなどが競合するので、使用する場合は、PHP4の場合はxampp1.6、PHP5の場合はxampp1.7というように使い分ける必要がある。

ローカル環境でGoogle Maps APIを使って開発をしたい場合がります。

しかし、開発を進めようと本番環境のドメインでAPI Keyを取得して、いざローカルで開発をはじめようとすると
「GoogleマップAPIに使用されているキーは他のウェブサイトに登録されています。。。」
というエラーが出て、ローカルではKeyが使えません。

http://code.google.com/intl/ja/apis/maps/signup.html
そんな場合は、別途開発用にローカルのドメインでAPI Keyを取得してしまえばいいです。
つまり、サイトURLを「http://localhost/」など、開発環境のURLを登録してAPI Keyを取得すれば問題ないです。

もちろん、本番へアップする場合には前に取得したKeyに置き換えなければいけません。

ちなみに「Googlemap api key ローカル」などと検索すると、「http://localhost/」で利用できるKeyを公開しているサイトなどを見かけますが、どっから出てきたのでしょうか。確かKeyはアカウント毎に発行されるので、配るのはあまりよろしくないとは思いますが。。。

ある任意のブロック要素の縦幅、横幅をブラウザのサイズに合わせて可変にしたい場合があります。

これを実現するためにはJavaScriptで、ブラウザサイズ変更を感知、ブラウザサイズを取得、ブラウザサイズの比率でブロック要素のサイズを変更、という流れの処理を実現しなければなりません。

例えば、縦幅を可変対応としたい場合に、まず、ブラウザサイズの検知にはイベントハンドラ「window.onresize」を利用します。
ブラウザサイズの取得には「document.documentElement.clientHeight」を用います。直感的に「window.innerHeight」を使おうと思いますが、これはIEでの動作がおかしいので標準的には使えません。

サイズ変更にはスタイル要素を追加しますが、ここでは「element.setAttribute(“style”, “height : ” + x + “px;”);」とします。これも直感的には「element.style.height」と思うかもしれませんが、IEではちゃんと動いてくれません。

ブラウザで印刷すると、モニタで見るレイアウトの通りに印刷できずに、内容が欠けたり、レイアウトが崩れることが多々あります。

原因としては、Webページの横幅のサイズなんて千差万別なので、ブラウザが対応しかねているという点があります。
そもそも、ブラウザは対応する気がないのかもしれません。Webページなんて印刷することを前提としてはいない、逆に印刷物にはないメリットがあってこそのWebコンテンツということでしょうか。

しかし、地図やクーポンなど、そこはどうしてもうまく印刷したいというコンテンツもあります。そんな時は、print cssを設置すればある程度解消できます。

Vistaが重い。。。

そろそろWindow7が発売される。振り返ってみれば、 Vistaってなんだったんだろうという印象です。Windows Meはメディアに強くなり、Windows 2000で安定性が向上し、Windows XPはその両方を兼ね備えたOSとして、今のスタンダードな位置を築いた。

私自身、今はVistaですが、特にXPから乗り換えたことでのメリットは感じられない。というより逆にデメリットとして動作が重い。。。
とりあえず、少しでも快適にするために、Vistaの特徴的な機能ともいえる「Aero」と「Windowsサイドバー」を落とす。

開発用にローカルでWebサーバを立てることはよくあると思う。また、案件毎にサイトを用意したいのでApacheのバーチャルホストなどを使って仮想的に複数立てることもあると思う。さらには、その複数をホストにドメインを割り振っている人も。。。そこまではなかなかいないか。

先日気が付きましたが、このサイト「helog」実はIEで見れてなかったのです。
恐ろしいことですね。

普段は家ではFirefoxしか使わないのですが、たまたまIE6を起動してこのページ「helog」を表示させてみたら総崩れ。。。
具体的には、css、javascript、画像などのコンテンツへのパスが一つも繋がっていません。レイアウトも関係なく、真っ白なページにテキストがずらずら書かれているような状態でした。

原因は以前に「he-ron.jp」をサブドメインを切って、サイト再編を行ったところからです。
例えば「http://he-ron.jp/contents/index.html」から「http://he-ron.jp/image/image.jpg」にアクセスする場合の相対パスは「../image/image.jpg」が正解です。
しかし、Firefoxの場合、極端に言うと「../../../../image/image.jpg」でもアクセス可能できたりするわけです。ルートとなるディレクトリにより上には行けないからでしょうか。おそらくapacheなどサーバの設定にも依存すると思いますが、詳細は分かりません。。。

今年の初めあたりにサイト再編をやって、階層をごっそり移したときにFirefoxでしか確認していなかったのがダメでした。

いやいや、webを職業としている者としてありえない失態です。
これまでIEからアクセスしていたみなさま、どうもすみませんでした。

またまたIE6のネタです。なんだか最近、確実にIE6のおかげで作業量が何割増しになっている気がします。
IE6料金って取れないだろうか。。。

今回は、IE6では対応していないcssプロパティ「min-height」を実現する方法です。
コードから先に出すと、以下のようになります。

.sample {
	min-height: 300px;
	height: auto !important;
	height: 300px;
}

Monthly Archives