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

ActionScript3ではイベントリスナーを多様するのですが、そのイベントリスナーで指定する関数に引数を渡したくて、少し調べてみました。

これを単純に実装しようとすると、以下のようにグローバルな値経由で無名関数の中に値を参照させることができるみたいです。

this.x = "てすと";
mc.addEventListener(Event.RESIZE, function(){
	trace(this.x);
});

結果はデバッグで「てすと」が出力されます。

しかし、これだと無名関数のためイベントの解除が難しそうです。さらには、関数が流用できないという欠点があります。

調べるとすぐに見つけることができたのですが、ActionScript3では以下のような記述が可能なようです。

このブログも記事が増えてきました。
カテゴリページなんかでは、すぐに目的の記事を探し出せるように一覧化したい一方で、MTで概要をそのまま並べるとどんどん冗長になっていきます。

そこで、今回、アコーディオンを実装してみました。

どこからかライブラリを拾ってこようと思ったのですが、jQueryで実装すると簡単みたいだったので、自作してみました。

前提として、以下のようなHTMLコーディングだったとします。

<div class="accordion">
<div class="title"><h2>タイトル</h2><img src="img.gif" alt="開閉ボタン" width="20" height="20" /></div>
<div class="outline">
概要概要概要概要概要概要概要概要
</div>
<div class="title"><h2>タイトル</h2><img src="img.gif" alt="開閉ボタン" width="20" height="20" /></div>
<div class="outline">
概要概要概要概要概要概要概要概要
</div>
<div class="title"><h2>タイトル</h2><img src="img.gif" alt="開閉ボタン" width="20" height="20" /></div>
<div class="outline">
概要概要概要概要概要概要概要概要
</div>
</div>

「開閉ボタン」をクリックすると、概要の部分がアコーディオン風に開閉する。そのようなプログラムをjQueryで実装すると以下のようになります。

PHPでシステムを構築する際に、ユーザとパスワードを管理する会員制サイトなどを作ることがあります。
基礎的なところから設計すると、いろいろとめんどうな処理が出てきます。例えば、

  • 無効なユーザはログインさせない
  • ログイン前、ログイン後、さらには認証に失敗したときの表示の切り替え
  • ログイン状態の保持(画面遷移、ブラウザを閉じる、時間/日数後にログイン状態をクリアするなど)

毎回、これらをゼロから構築するのは大変なので、ライブラリにまとめたいところですが、クライアント毎に細かいところの仕様が異なるため、それに対応させるのも難しいです。

そこで、今回、PEARのAuthを使ってみることにしました。

今日、とある牛丼屋さんでこんな風景に出会いました。

券売機でおつりが出ないという初老のお方。そう言われた店員は、レジのような機械で履歴のようなものを調べているようです。そこらへんのただの安っぽい券売機ではなく、システムを搭載したやつなんでしょうね。
「お客様、調べてみたのですが、そのような記録がないようなので」という店員に、初老は「確かに入れたのに、おつりが出なかったんだよ」というやりとり。
自信の店員と反抗する初老、傍から見ると初老がウソをついているかのような状況。最終的には店員が「業者さんに調べてもらった後、返金があれば連絡しますので、連絡先を教えてください。」というのに対して、初老は「もういい!」とご立腹のようすで連絡先を教えようとしない。

PHPからsmartyのテンプレートへ値を渡す場合に、めんどくさいからDBから取得した配列をPHPで加工せずにそのまま渡したい、といった場面がしばしばあります。加工というのは、文字列の操作や改行、文字コードの変換など簡易レベル。

そんな時、smartyテンプレートにPHPの関数を直接書いたりします。例えば以下の処理は、

$str = mb_substr($str, 0, 10);

smartyのテンプレート上で以下のように表現できます。

{$str|mb_substr:0:10}

つまり、以下のルールに従えばPHPで使える関数が、テンプレート上でそのまま利用できるというわけです。

{(第一引数)|(関数名):(第二引数):(第三引数):(第四引数):...}

Voralent Invidiのアートワーク取得機能がいい感じです。
Voralent Invidi – http://www.voralent.com/products/invidi/

voralent.jpg

音楽ファイルの管理にiTunesを使っている方も多いでしょうが、私も重宝している一人です。管理機能の中でもアートワークはその音楽のジャケットをビジュアルで見せてくれるので、わかりやすい。

Webサイトに「favicon」を設定することがスタンダードになってきているようです。

faviconとはブラウザのタブ、もしくはURLの先頭のほうに表示される、そのサイトオリジナルの画像アイコンのことです。もともとは「favorite icon」だったようですね。

私も早速、このサイトに設置してみました。

画像サイズは16×16、または32×32が一般的のようです。gifやpngで作成した画像を以下のサイトで拡張子「.ico」の形式に変換します。
Favicon Generator – http://favicon-generator.org/
そのほかにもfaviconを作成する専用サイトはいろいろあるようです。

PHPで文字列操作によく使うsubstrですが、しくみは単純ですが少し掘り下げてみるといろいろとできることに改めて関心しました。

まず、通常のように

echo substr("ABCDEFGHIJ", 5);

の結果は「FGHIJ」

echo substr("ABCDEFGHIJ", 2, 3);

の結果は「CDE」となります。

第一引数で処理対象となる文字列、第二引数で切り出す位置、第三引数で切り出すサイズを指定するんですね。ここで一歩踏み込むと

echo substr("ABCDEFGHIJ", -3);

の結果は「HIJ」

echo substr("ABCDEFGHIJ", 5, -3);

の結果は「FG」となります。これは「substr(“ABCDEFGHIJ”, 5)」の結果が「FGHIJ」なのに対して、末尾の3文字「HIJ」を差し引くことになるんですね。

このようなサイトを見つけました。
ie6 no more – http://www.ie6nomore.com/

以前から、何度もこのブログで書いているとおり、ie6は開発者泣かせのブラウザです。というのもバグが多すぎます。
ホームページの構築において、1時間で終わる作業が、ie6のバグのおかげで2~3倍、ひどいときには一日中時間を費やすこともあります。その他にも、公開直前のサイトから「ie6でレイアウトが崩れている」との指摘を急遽受け、対応を迫られたり。

「技術者として足りていない」と言われればそれまでですが。。。
しかし、生産性が悪くなることがあっても、良くなることは決してありません。ie8がリリースされた今、10年前にリリースされたie6に将来性はありません。

そんなブラウザ、さっさとなくなってしまえばいい!とお思いの方は多いはず!

ということで、私も「ie6 no more」のサイトに賛同いたします。該当サイトのタグを、このブログにも貼らせていただきました。ie6で見てる方には、そのメッセージが見えるはずです。
さぁ、メッセージが見えている方々、最新のブラウザをゲットしましょう!

よくひっかかるので、メモを残しておきます。

開発用に自身のPCにxamppやApacheをインストールしています。もちろんポートはデフォルトで80番ポートを使用しています。それが、Skypeをインストールしたと同時に、Apacheが起動しなくなります。Apacheのログを見てみると

(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。  : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

原因はSkypeがデフォルトで80番ポートを占有するためです。

これを解決するにはSkypeのポートを変更します。
Skypeの「ツール」⇒「設定」から設定画面を開き、「詳細」⇒「接続」から「上記のポートの代わり、ポート80を使用」のチェックを外します。

Monthly Archives