ホーム > タグ > Web

Web

筑波大公式サイトのfont指定が変わった

なんか筑波大学公式サイトの見た目が変わったと思ったので、フォントの指定を見てみた所

font-family:”MS Pゴシック”, Osaka, “ヒラギノ角ゴ Pro W3″;

から

font-family:’Hiragino Kaku Gothic Pro’,'ヒラギノ角ゴ Pro W3′, ‘MS Pゴシック’, Osaka, sans-serif;

になっていました。

これによってMac環境だとヒラギノで表示される訳ですね。

Windows Vista環境向けのメイリオ指定が無いですが、これはメイリオが何かのきっかけで入ってしまってるXpで、True Typeがオンになっていないと悲惨になるので仕方ないか。

どうせjs無いとまともに見れないんだから、UAからVistaを判定するのもアリかなと思いますがどうなんでしょう。

CakePHPの高深度アソシエーションの欠点

CakePHP(1.1)でSNS的なシステムを運用していて気づいた事。
1.2で改善されてるのか?ちょっと調べてないから解らないが…

メッセージ一覧のページの表示が前々から遅くて、何が起きてるのかと思いつつ放置していたんだが
少し余裕が出て来たのでデバッグモード(=2)でクエリを見てみたら、何か件数x3くらいのクエリが実行されていた訳だ

ここで問題。

PHP標準のSQL発行ではアソシエーションの階層はハッシュの階層に反映されない。LEFT JOINを何度しようと、結局はSELECTで指定したカラム名による一次ハッシュになるはず。
でもCakeでアソシエーションを組むと、階層が反映されるわけだ。
どうやっているんでしょうね?

正解は、「カラムごとにクエリを何度も発行している」(!!)
だから今回の様に、何かのリストのような物を表示する時にCakeのfindAll(Byなんたらを含む)をするとめちゃくちゃ重いってわけだ

結局Model::query()にカスタムしたSQL文を突っ込んでやったら爆速になりましたとさ。

まとめ

CakePHPのfind系メソッドは複雑なアソシエーションを組んだデータのリストには向いてないので、自分でSQL文を書こう!

CakePHP1.1のscaffolgでアンダーバー(_)区切りDB(モデル)を使う時にバグる

タイトルの通りです。
そして記事としてはサイトの紹介に留まります。
http://d.hatena.ne.jp/cos31/20080220/1203490118

Notice: Trying to get property of non-object /hogehoge/cake/libs/controller.php L66

バグの内容としては、テーブルは通常通りに描画されているっぽいんだがなぜか表示されない。動作の雰囲気は、モデル情報を適切に取得できずにカラムが生成出来ていないといった所。

スクリーンショット撮っておけばよかったなぁ

まぁ私用メモみたいなもんですが、困ってる人の参考になれば幸いです

俺の開発環境(macでPHP+MySQL)

今使っている開発環境をメモっておこうかと。

まずマシンはmac book early 2008のローエンドで、RAMを2Gx2にしたもの。Leopard

標準のApacheに付け足すと(特にPHPのPDOドライバ周りが)面倒なのでxamppで統合環境をセットアップ。

ブラウザはFirefox、アドオンにpagerankを調べるためのGoogleツールバーとFirebug
ただしFirebugはリグルがきもすぎるのでhttp://koress.jp/2008/07/firebug.htmlを参考に可愛いハチの画像に。

エディタはmiとかdashcodeとかKEditとか使ったけど原稿で最も安定して使いやすいのはCotEditorだね。
タブは無いけどmacの場合Exposeがあるから問題ない。

あとは必要に応じてIEの表示を確認出来る様にVMWareFusionでXpを動かしてある。
RAM増設前(512MBx2)は重かったけど今は結構快適。

まぁこんな所です。特にmac用の良いエディタを探している人にはCotEditor超オススメです。

俺の開発環境(おもにWeb系

MT Perl APIをいじってみた

MovableTypeを外部からいじるのに役立つモジュールがある。
MT Perl APIといって、mt/libのなかに.pm形式で色々入っている。
携帯用に表示するスクリプトとして有名なMT4iなどはこれを駆使して作られている。

とある理由でこいつをいじっていたら、
No ObjectDriverとかいうエラーが…
なんだろうと調べていたらどうやら解決。
my $mt = MT->new( Config => “/home/hoge/public_html/mt/mt-config.cgi”);
とか書いて、Configからデータベースへの接続設定とかもろもろを読み込ませる必要がある模様。

MT4iのソースコードとかSixApartのサンプルソースとか読んで分かったけど
これリファレンスとかの冒頭に書いといて欲しい…

Home > Tags > Web

Search
Feeds
Meta

Return to page top