Googleリーダーである有名写真家(クラシックカメラとか、高級デジカメの批評で有名な人)を見ると、掲載している写真が大きくて、Googleリーダーからはみ出すのです。
オリジナルのサイトでは、正しくレイアウトされているので、原因はアップしている写真の大きさ。無駄にサイズが大きいのです。これは意図的にやっているのか、わかりませんが・・・。
Googleリーダーでは写真が拡大されて表示してしまうので、ピントが甘いのがわかってしまうのが残念です。
とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。
Googleリーダーである有名写真家(クラシックカメラとか、高級デジカメの批評で有名な人)を見ると、掲載している写真が大きくて、Googleリーダーからはみ出すのです。
オリジナルのサイトでは、正しくレイアウトされているので、原因はアップしている写真の大きさ。無駄にサイズが大きいのです。これは意図的にやっているのか、わかりませんが・・・。
Googleリーダーでは写真が拡大されて表示してしまうので、ピントが甘いのがわかってしまうのが残念です。
ページングが簡単にできてしまうCakePHPのpaginateはとても便利です。パラメーターをちょっと設定してあげるだけなので、誰でも使いたくなるはず。
しかし、このpaginateには、大きな落とし穴があります。いくつものアソシエーションを設定されているモデルに対してpaginateを使うと、とても遅いのです。
これはpaginateだけではなくfindAllでも言えること。何も考えずに使うと、結果が返ってこないのです。
デバッグレベルを3にするとわかるのですが、大量にSQLが生成されます。この辺りをきちんとチューニングしてあげないといけません。
paginateの最適化を調べましたが、なかなか検索にひっかかりません。仕方ないので、試行錯誤。結局は以下の通り。
必要のないアソシエーションは実行する前に削除しておく。モデルクラスで最初に$hasManyを定義しますが、このままですと勝手にそのモデルへの抽出のためのSQLを発行してくれます。paginateのfieldsオプションに、抽出したい項目を並べておけば、それだけをSQL一つで抽出してくれるかと思っていましたが、これは大間違え。$hasManyに定義されているモデルに対して1レコードづつ改めてSQLを生成します。
あと、アソシエーションが3つになると、例えばA->B->Cと各モデルがhasMany,belongsToのアソシエーションを定義されているとすると、Aに対してpaginateをすると、A->Bで参照されたSQLを発行して、その後各レコードでCを参照するSQLが発行されてしまいます。したがって、Cがあまり大きなテーブルではなくて、ほとんど更新がないようなテーブルだと、データを配列に格納して参照させたほうがいいかもしれません。
とにかく、CakePHPのpaginateやfindAllは、余計なSQLを発行してくれます。いかに無駄なSQLを削除するかがパフォーマンスの分かれ目です。
今回、以上の方法でCakePHPから発行しているSQLの数を一桁以上減らすことで、paginateのパフォーマンスをあげました。一番のCakePHPのチューニング方法は、core.phpでデバッグレベルを3にして表示されるデバッグ情報のSQLダンプを見ながら調整していくことをお勧めします。
Windows7 64bitを使ってのトラブルは、あまりないようですが、自分でわかっているのは次の2件。
あまり、大きな影響はないですが、ただ面倒なだけです。
Windows7を買うついでに、USBメモリを買ってしまった。買ったのは、なるべく小さいUSBメモリ。つけっぱなしにしてもいいように、出っぱりが少ないもの。
買ったのは、プリンストンのUSBメモリ。このUSBメモリにUbuntuをインストールします。
最初は、usb-creator.exeを使えばUSBメモリにUbuntuをインストールできると書いてあったが、UbuntuのISOイメージには見あたらない。
そこで、UNetbootinというソフトを使って、ISOイメージファイルからUSBメモリに転送。とても簡単。ブートCDを作る必要もない。
しかし、Ubuntuの設定の保存はどうやるの? ブートするたびに毎回設定を忘れてしまうのですが・・・。基本を理解していないのでした。
そういえばプリンストンのUSBメモリですが、USBメモリといってもただのUSBメモリではありません。メモリ自体がmicroSDなのです。つまり、microSD付きのUSBメモリアダプタなのです。したがって、もっとmicroSDが安くなったら差し替えることができるのです。まあ、microSD自体は小さいので、そんなに差し替えすることはないかもしれませんが・・・。
今日は、渋谷のビックカメラによって、Windows7 Professionalを買って帰りました。
早速、インストールです。もちろん64ビットです。せっかくメモリが4GBありますので。
Windows7のRCが入っている領域にインストールします。今回は新規インストールです。
XPのことは何も聞かれません。問題なくあっさりインストール完了です。何もトラブルがないのは逆に怖いです。
アプリケーションは、
をインストールしました。アンチウイルスソフトは、今回初めて
を入れました。データはすべて共有あるいは分散していますので、データの移行はしなくていいから、とても簡単です。以上、2時間くらいの作業です。
自作PC用に一番左のWindows11のパッケージを実際に購入しましたが、問題なくインストールできました。Windowsは使うPCの分だけ正しくライセンスを購入しましょう。
JARLビューロからQSLカードが来ました。今回は多いです。
オール神奈川コンテストとか6m AND DOWNコンテストなどコンテストがあったことと、5月6月のコンディションが良かった時期の交信のおかげかもしれません。
ハムログで受領の処理をしました。こちらから先月分までのカードを送らなければいけませんね。
先ほどの記事のように、Eclipse-PDTを上書きインストールしたらプラグインが無効になってしまった。
とりあえずの必須のプラグインは、
の2つ。再インストールしようにも、うまくいかない。
Clay Database Modelingは2.0になっていて、旧バージョンのアップデートサイトがクローズされている。旧バージョンのライセンスは購入しているが、開発元のアズーリによると、旧バージョンは新しいバージョンにアップデートしろとのこと。しかし、旧バージョンからのバージョンアップはなし。しかもライセンス料は80,000円也。機能とコストが全く見合わないのでアップデートはやめておく。別のデータベースモデリングのプラグインを探さなければいけない。
プラグインを有効にどうしてもできないので、しかたないので再インストールをしなければいけない。なにげにアップデートしたら、こんな羽目になった。残念。
Eclipse-PDTを「Help」ー「Check for Updates」からアップデートしたら、”An error occurred.・・・”とエラーで起動できなくなってしまった。
eclipse.iniを書き換えたり、削除したりしてもダメだった。あとjavaをアップデートしても起動できない。
最後の手段で最新のEclipse-PDTを上書きインストールしたら、何事もなく起動できた。そんなものか・・・。
昨日、叔父の葬式から戻りました。一晩、線香守りをしたので寝不足です。
従兄弟が8人全員集まりました。私のその中で一番年下です。いつまでの子ども扱いになります。上下関係がハッキリしているので、何やかんやとパシリになります。
といいながらも、母のことなど、いろいろ気遣ってくれますので、ありがたい従兄弟たちです。こんなこと以外で会いたいものです。
母方の叔父が亡くなり、岐阜(東濃)に行ってきます。
叔父はとても楽しく愉快な人でした。今の時期は毎年送ったもらったほろほろの栗きんとんが楽しみでした。
とても寂しくなります。