マクロレンズ購入

EF-S60mm F2.8 マクロを購入。これで壁など寄って撮れる。

寄るとピントが薄いので被写界深度を考えたり、ミラーショックのことも意識しないと。

20100808_01

20100808_02

Domotic – I Hate You Forever

動画を教えてもらって、iTSでアルバムを購入。
電子音楽系がバンドで演奏してるのかっこいいなー

サイトは写真が素敵。

画像の読み込み後にエフェクトをかける

画像を非表示にさせてから、画像の読み込み完了後にエフェクトをかけたかったのでそのメモ。jQuery使用。

すべての img に対して、それぞれ読み込みを待ってからフェードさせてみる。

$(function(){
  $('img').each(function(i) {
    var self = this;
    $(self).hide();
    $(self).load(function(){
      $(self).fadeIn('slow');
    });
  });
});

これだと

  • hide() で画像が display:none; になり幅・高さがなくなる。親ブロックのサイズが変わったり。
  • ロードが終わったタイミングで随時表示させるので、並べた画像が並び順ではなくロードの終わった順番で表示される
  • fedeIn() の処理が同時に起きて重い

使い道によるけど、いったん同サイズの div で囲むとか、端からそれぞれアニメーションの終了を待って順番に表示させるとか、実際に使うには工夫が必要そう。

CSS にデータURIスキームで画像を埋め込む

CSS にもデータURIスキームで画像を埋め込めるようなので、以下のサイトを参考にしながらやってみた。対応ブラウザはきちんと確認していません。

この画像でやってみる。
変換元の画像

base64 エンコードをするのには base64 コマンドを使用

$ base64 -e bg.gif
R0lGODlhCgAKAIAAAAAAAP///yH5BAAAAAAALAAAAAAKAAoAAAIRhB2ZB7rnAovTVcUavpJn
yxUAOw==

実行結果から改行・スペースを取り除いてCSSに入れる。

background: #ffffff url("data:image/gif;base64, R0lGODlhCgAKAIAAAAAAAP///yH5BAAAAAAALAAAAAAKAAoAAAIRhB2ZB7rnAovTVcUavpJnyxUAOw==") 0 0 repeat;

画像ファイルをアップする場所が無い、html以外を含められないなど、使い道は限られそうだけど。

CakePHP のコンポーネントの startup() は beforeFilter() より後

CakePHP で app_controller.php の beforeFilter でコンポーネントを使った共通する処理をしようとしてハマった。

エラーはこんな感じ

Fatal error: Call to a member function hoge_function() on a non-object in ...

独自のコンポーネントを作成する :: コンポーネント :: CakePHPによる開発 :: マニュアル :: 1.3コレクション :: The Cookbook

initialize メソッドはコントローラの beforeFilter() メソッドの前に呼び出され、startup() はコントローラの beforeFilter() メソッドの後に呼び出されます。

ということで、beforeFilter() の時点ではコンポーネントの startup() は実行されていない。

ほかのやり方がありそうだけど、とりあえず処理をコントローラのアクションに移して対処。

Flickrの投稿テスト

20100724002