[書籍]もえる年賀状2009丑

Written by uechoco 10月 19
この記事を読む時間:23くらい

時代の波ってやつですかね。

年賀状まで萌えるらしい。

パラパラ見た感じだと、牛っ娘のCG集な気もしないでもないです。

ところで・・・心なしか巨乳なイラストが多い気がします。やっぱり牛から連想されるものはそういうことなんでしょうか?

[WordPress]2.7は管理画面のデザインを一新するらしい

Written by uechoco 10月 19
この記事を読む時間:48くらい

WordPressに移行してから、いろいろとWordPressのテクニックを積んでいますが、管理画面のデザインが改善されるたびに、ますますWordPressを好きになっていくような気がします。

もうすぐWordPress 2.7が出るようですが、管理画面がカッコイイ感じになってます!!

WordPress ? Blog ? The Visual Design of 2.7

個人的にはMovableType 4で使っていたダッシュボードの投稿履歴グラフとか、WordPressでも出してくれないかなーと思っているのですが、そういうのってプラグインであるのかな?

[文具]SARASA4 – ジェルボールペンのサラサに4色セットが!!

Written by uechoco 10月 14
この記事を読む時間:110くらい

ZEBRA | ゼブラ株式会社 | SARASA3/SARASA4/SARASA2+S/SARASA3+S –

うえちょこ御用達の文具の1つにゼブラのジェルボールペンSARASA(サラサ)があります。いろんなボールペンを試してきたけど、これが現在はベストです。結構周りにもファンがいて、昔の上司も今の上司もSARASAファンです。

先日、生協の文房具売り場を物色していたら、多機能ボールペンコーナーでSARASA3(サラサの3色セット)SARASA4(サラサの4色セット)を見つけてしまいました!!今まで黒・赤・青の3色持ち歩いていたのですが、1本ですんじゃいますね!ますますサラサが好きになりそうだww

そうそう、余談ですけど、SARASAにあうノートは、プロジェクトペーパーがいいと思ってるんですが、みなさんはどんな組み合わせとかでしょう?

[symfony]Class ‘BaseFormPropel’ not foundエラー解決

Written by uechoco 10月 10
この記事を読む時間:79くらい

以前、[symfony]Fatal error: Class ‘BaseFormPropel’ not foundというsymfony 1.1でフォームとPropelを組み合わせたときのエラーについて書いたことがあります。その時は解決には至らず、適当な回避策でごまかしていましたが、やはり開発に影響が出たので詳しく調べて、原因を突き止め、(たぶん)解決まで至りました。

どうやら、一定の条件を満たしているときに発生することがわかりました。

発生条件

以下のすべてを満たしているとき、「Class ‘BaseFormPropel’ not found」エラーが発生すると思われます。

  • symfony 1.1(普通)
  • O/RマッパーはPropel(普通)
  • symfony propel:build-formコマンドなどで作った、Propelと連携したフォームクラスがある(普通)
  • autoload.ymlを拡張していない(普通)
  • symfony本体を/libディレクトリの中に保持している
  • /libディレクトリの中に保持しているsymfony本体のディレクトリ名が”symfony”以外(ex: symfony-1.1.x)

「Class ‘BaseFormPropel’ not found」エラー内容のおさらい

Propelと連携したフォームクラスを用いると、以下のようなエラーが表示され、スクリプトが中断します。

[phpcode][?php /** * Project form base class. * * @package form * @version SVN: $Id: sfPropelFormBaseTemplate.php 6174 2007-11-27 06:22:40Z fabien $ */
abstract class BaseFormPropel extends sfFormPropel { public function setup() { } }
Fatal error: Class ‘BaseFormPropel’ not found in /path-to-project/lib/form/base/BaseMemberForm.class.php on line 10[/phpcode]

調査

  • 画面に表示された内容は以下のファイル内容そのまま
    1. /path-to-project/lib/symfony-1.1.x/lib/plugins/sfPropelPlugin/data/generator/sfPropelForm/default/template/sfPropelFormBaseTemplate.php
  • キャッシュとして生成されたconfig_autoload.yml.phpの内容からBaseFormPropelに関する内容を抜き出すと以下のようになる
    [phpcode] // auto-generated by sfAutoloadConfigHandler
    // date: 2008/10/09 16:56:11
    return array(
    // project
    ‘BaseFormPropel’ => ‘/path-to-project/lib/form/BaseFormPropel.class.php’,
    ‘BaseFormPropel’ => ‘/path-to-project/lib/symfony-1.1.x/lib/plugins/sfPropelPlugin/test/functional/fixtures/lib/form/BaseFormPropel.class.php’,
    ‘BaseFormPropel’ => ‘/path-to-project/lib/symfony-1.1.x/lib/plugins/sfPropelPlugin/data/generator/sfPropelForm/default/template/sfPropelFormBaseTemplate.php’,
    );[/phpcode]
  • 上記から読み取れることは、autoload.ymlのprojectというルールにおいて、BaseFormPropelの定義が複数ある。一番最後に上書きした定義はエラーとして画面に表示されたファイルを指している
  • つまり、autoload.ymlのprojectルールがよくない。

原因

デフォルトのautoload.ymlは$sf_symfony_lib_dir/config/autoload.ymlにあります。このうち、projectルールだけを取り出すと以下のようになっています。
[phpcode]
autoload:
# プロジェクト
project:
name: project
path: %SF_LIB_DIR%
recursive: on
exclude: [model, symfony]
[/phpcode]
日本語で書けば、projectという名前のルールは、%SF_LIB_DIR%(/path-to-project/lib)を基準に再帰的にクラスを検索するが、modelとsymfonyという名前のディレクトリは除外するルールのようです。おそらく、/path-to-project/libにsymfony本体を置く場合、ディレクトリ名をsymfonyとする習慣があるので、それを考慮して除外ルールが設定されているのではないでしょうか。そして、今回はsymfony-1.1.xというディレクトリ名でsymfony本体を置いてしまいました。当然除外ルールには該当しないので、symfony本体に含まれる大量のクラスがautoload対象になってしまったのです。

解決策

1つは、/path-to-project/libに置いたsymfony本体のディレクトリ名をsymfonyに変更することです。おそらくこれが一番シンプルな解決策です。前述した除外ルールも適用されるはずです。
もう1つは、各アプリケーションにautoload.ymlを設置し、projectルールを上書きして、除外ディレクトリ名にsymfony-1.1.xなどのsymfony本体のディレクトリ名を追加することです。何らかの理由によってsymfony本体のディレクトリを変更できない場合はこの方法が有効です。

たぶんこれで解決したのではないでしょうか。
それにしてもsymfonyって設定に慣れないと面倒ですね。。。

[iTunes]スマートプレイリスト機能に惚れた

Written by uechoco 10月 07
この記事を読む時間:135くらい

最近、iPod nano 3GenをPCと接続する時に毎回フリーズするので、ちょっと萎えていました。だってフリーズしたら、リセットしないと本当に動かないんだもん。。。

ですが、iTunesの賢い機能を見つけてハッピーになりましたww

それがスマートプレイリスト!そんなの知ってるって人は、次のRSSフィードでも読んでいてください。うえちょこは知りませんでした。説明書読みませんからっ!

簡単に言うと、プレイリストの自動生成機能ですね。うえちょこの場合は、「ジャンル:J-pop」とか「アーティスト:しもちゃみん系(※1)」とか、そういうプレイリストがあって、いちいち自分で加えてたのですが、そんなことしなくてもよかったのか!

スマートプレイリストの作り方は簡単。[ファイル]-[新規スマートプレイリスト(Ctrl+Alt+N)]を選択し、自分の求めている条件を設定、最後にプレイリスト名を設定するだけ。後から条件の編集もできます。

とりあえず、「トップレート(★3↑)」とか「トップレート(★4↑)」とかそういうのも作ってみた。

やべー。これ便利だ。

(※1)しもちゃみん=霜月はるか、茶太、片霧烈火の3人組。”系”とつくのはうえちょこが癒月さんとかを加えてるため。