カテゴリー : php

このカテゴリーの登録数:8件 表示 : 7 - 8 / 8

Feb 26, 2005

ローカルで動いているiTunesの情報をWEBに(1)

ポスト @ 13:33:35 , 修正 @ May 03, 2005 3:15:13 | perl,php,appleScript,soft


設置先garden staff room
ローカルで動いているiTunesの演奏曲の情報をリアルタイムでホームページに反映する。
って別に目新しくも何ともないですが・・・
すでにその手のソフトはたくさんある訳で・・・実は私もそういうソフトを利用させていただいていました。
その手のソフトで私が知ってるものは大体というか全て仕組み的にはitunesが動いているMacでitunesと同時に起動させておき一定時間毎に演奏中の曲情報を得て更新が有れば新しい曲情報を(画像などに変換して)サーバ(FTPなど)にアップって感じです。
まあもっともなというか普通に考えるとこの方法が確実でいちばん良いのかもしれません。
私もその手のソフトで事足りてた訳ですがなぜか自分も作ってしまいました。
というのもウチのiTunes専用マシンがiMac rev.D(PowerPC G3 333MHZ 256MBx2)なのですがiTunesとiTunesで演奏中の曲間の音のばらつき(大きい音の曲と小さい音の曲のばらつきなど)を無くす為に入れているVolume Logicというプラグイン(リアルタイムでデジタルマスタリングしてくれているらしいと言うかよく分かってないw)と例のソフトのみの起動という構成で1日8時間ぐらいジュークボックスとして働いているのですが・・・
困った事にOSX10.3にしてから動き自体は10.2よりモッサリ感が無くなったのですが度々固まるようになってしまいました。どうも固まるタイミングが例のソフトでiTunesの曲情報をサーバにアップしようとした時とかエモ系の曲で静かなところから急に激しくなる時(Volume Logicがフル稼働?)とかCPUの負荷が一気に高まって固まっちゃうみたいな感じです。
それとOSX10.3になってメモリチェックが厳しくなったとかって話も聞いた事が有るので後から差した256MBの2枚のメモリが怪しいのかなあとかも思ってたりしますが(もともとPowerBook G4についてたやつ)
なんか前振りが長くなったのであとは簡潔に。
今回作ってみたのは
すでに有るソフトの動き
演奏中のitunesを常に監視」→「変更が有ったら(画像加工などをして)データを作成」→「(FTPなどで)サーバにアップロード
という流れではなく
ホームページに誰かアクセス」→「ローカルのiMacから情報をゲット」→「ゲットした情報とその情報を元にCDのジャケットをAmazon.comから拝借してホームページに表示」という流れで考えました。
これならローカルのiMacが仕事するのは「ローカルのiMacから情報をゲット」の部分だけです。それにホームページに誰もアクセスしていない時は一切何もしないので無駄な動きはありません。
とりあえずホームページにアクセスが集中しても大丈夫なようにホームページの有るサーバ側に曲情報のログを残しローカルのiMacへの問い合せは一定時間たたないと行わないようにして有ります。
(一定時間内はローカルに問い合わせるのではなくサーバのログを参照する)
という訳で長くなったので続きはまた今度。

Jan 29, 2005

turck-mmcache-2.4.6を導入してみる

ポスト @ 17:55:38 , 修正 @ Jan 29, 2005 8:55:38 | php

PHPの高速化対策として今までZend Optimizerを導入していましたが自宅サーバにテストで導入してみたmmcacheの
パフォーマンスが良かったので当サーバにもturck-mmcache-2.4.6を導入してみました。
debianではパッケージが用意されていなかったのでソースからインストールしました。

覚書

export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config
make

make install

zend_extension="/usr/lib/php4/20020429/mmcache.so"
mmcache.shm_size="16"
mmcache.cache_dir="/tmp/mmcache"
mmcache.enable="1"
mmcache.optimizer="1"
mmcache.check_mtime="1"
mmcache.debug="0"
mmcache.filter=""
mmcache.shm_max="0"
mmcache.shm_ttl="0"
mmcache.shm_prune_period="0"
mmcache.shm_only="0"
mmcache.compress="1"