アップデートでやられた (19:21)
Win32/Mytob.CY wormとかいう新しいウイルス付きメールが、サーバーのウイルススキャンをすり抜けて来たって言われたんで、最近(本体の)アップデートをかけていなかったclamavをアップデートしてみた。yumで一気にアップデートして、ふつうにメールの送受信ができていたんでOKかと思ったら、添付ファイル付きのメールが扱えなくなっていた。「unknown clamd scanner error or memory/resource/perms」って昔見たことあるな。確か権限周りの設定がおかしくなったときに、このエラーが出ていた。前は、ウイルススキャンするディレクトリに書き込めなくなったってパターンだったはず。で、見てみたら、アップデート前はqscand権限で動いていたclamdが、clamav権限で動いていた。clamd.confを書き換えて再起動して復活。/etc/rc.d/init.d/clamdのUSER設定の変更は効かなかった。
Re:「RSSを収集しているサービスは個別のブログに何かを還元できないか?」 (19:07)
に関連して、ちょろっと機能を追加。
商品紹介用HTMLテンプレート作成機能をちょっとだけ強化(パターン増)してみたけど、まあこの手の機能はそれ専用の(テンプレートが充実した)サイトが他にもあるんで、あまり使う人はいないでしょう。もし「こういうテンプレートをつけてくれ」とか要望があったら追加しますよ。
あと、もともとblogmapのメディア系情報RSSでは、associate=your-associate-idなんて引数をつければアソシエイトIDは自由に変更できるようになっているんで、サイドバーにRSSを埋め込み表示したい場合なんかには、適当にご利用ください。メディア系のRSSならば、メディア総合ランキングとか新着メディアランキングとかあちこちで使えます。
さらに、サイト情報の「紹介したメディア」に関してもRSSを配信するようにした(サイト情報ページの「紹介したメディア」の横にRSSリンクを用意した)んで、それに自分のアソシエイトIDを入れると、「最近自分が紹介した商品」のRSSを自分のアソシエイトID付きで取得できます。たとえば、うちのサイトで紹介したメディア情報のRSSは、
http://1470.net/bm/siteinfo/71738/mediarss?associate=your-associate-id
なんて感じ。
さらに、従来のアソシエイト広告ツールの強化バージョンを用意しました。強化バージョンでは、縦に複数個の商品を並べて紹介できるようになっています。APIは、
http://1470.net/api/asin_cms.php?website=[website ID];limit=[表示数];mode=[html/js];width=[表示幅(px)];associate=[アソシエイトID]
なんて感じ。各引数の意味は、
- website - 対象となるWebサイトのID(siteinfoのURLの数値部分)。Webサイトを指定した場合は、そのサイトで最近紹介された順に返す。Webサイト省略時はblogmapのメディアランキングの上位から返す。
- limit - 1〜10の数値。一度に表示する商品数を指定する。
- mode - htmlならばHTML形式、jsならJavaScriptを出力する。テンプレートなんかに埋め込む場合はHTML形式、サイドバーにJavaScriptで埋め込みたい場合はjsを指定する。
- width - 表示幅(px)を指定する。
- associate - AmazonアソシエイトIDを指定する。指定しない場合はishinao-22が使われる。
といった感じです。たとえば、blogmapのランキングTop3をJavaScriptで埋め込みたい場合は、
<script type="text/javascript" charset="euc-jp" src="http://1470.net/api/asin_cms.php?limit=3;mode=js;associate=your-associate-id"></script>
なんて書くと、
なんて感じになります。うちのサイトで最近取り上げた商品五つを紹介したい場合は、
<script type="text/javascript" charset="euc-jp" src="http://1470.net/api/asin_cms.php?website=71738;limit=5;mode=js;associate=your-associate-id"></script>
なんて書くと、
なんて感じになります。
かなりやっつけで用意した機能ですけど、使ってみたい方はどうぞ。
引っ越し一段落 (13:53)
もう予備の土日がない引っ越しはしないと誓う所存であります。
日曜日の朝8時半に引っ越し業者が来るって言うのに、結局梱包が間に合わず、なし崩し的に運搬作業に突入。なんかもうぐだぐだになりながら、当初の予定では捨てるはずだったものも適当に運んでもらいまくり。で、新居の方でも分類不明な段ボールが大量発生してしまい、適当にリビングに積みまくり。ぎりぎり寝る場所だけ確保したものの、子供の保育園グッズとかも行方不明。旧居には、積み残し(梱包残し)の荷物と大量のゴミが残される。
火曜日には旧居を明け渡さなければならないため、月曜日は会社を休んでばたばた残作業。なんとか大量のゴミを処分し、粗大ゴミ回収の手配をすませ、細かい荷物を運ぶ。で、一通り掃除を済ませて、今日の午前中に部屋の引き渡しをすませてだいたい終了。まだ粗大ゴミ回収シールを貼ってないから、その辺を回収日までにやっておかないと。新居の方の段ボールはひとまず今週の土曜日にリビングの新しい家具が到着するんで、それまでに片付けないといけない。
そういや旧居ではキッチン周りのスペース不足で取り付けられなかった食器洗い機も土曜日に届く。いろいろ迷ったけど、よくわからなかったんで、ひとまずスチーム洗浄+水圧強めってところが良さそうにみえた東芝DWS-60X6を選んでみた。もうすぐ新機種が出るらしいけど、そんなに機能も変わらないみたいだったし、まあいいかってことで。47800円+分岐水栓代。
今週いっぱいくらいまではまだばたばたし続けなければならないだろうなー。ネット関連でリアルタイムで乗り損ねた話題に、今から反応するべきかどうか微妙に迷い中。
速くなったよ! でも速くなってないよ! (13:50)
そういや引っ越しをするって話はこっちで書いたんだっけ? まあ引っ越しするわけなんですが、今までよりも電話局に近いところに引っ越すんで、今まで40Mbps契約で6Mbpsくらいしか出ていなかったADSLが、どのくらい速くなるかちょっと期待していたわけですよ。
で、今日電話の工事が終わったんで試してみたら、ADSLモデムのレポート値で25Mbpsまで来てましたよ。おお、結構速くなってるじゃん! でも体感速度は全然変わらないし、スピードテストサイトとかでも3Mbps程度しか出なかったけどなー。ボトルネックはどこだろう?
Re:「驚いちゃったよ—-ちゃっかりRSS」 (01:22)
blogmapは基本的に私が「ネット上で流れている情報を、できるだけ自動的に整理された形で手に入れたい(自分で情報を整理する手間を省きたい)」という目的のために作ったものです。
- 「ある話題に関して、さまざまな人がどのようなことを言っているのかを知りたい」→「URLがキーになる」→「同じURLにリンクをした記事をデータベース化」→「URLからタイトルを取得して表示」
- 「ある本、音楽、映画に関して、さまざまな人がどのようなことを言っているのか知りたい」→「ISBN、ASINがキーになる」→「同じISBN、ASINが文中に存在する記事をデータベース化」→「ASINをキーにAmazon Webサービスを使って書誌情報等を取得して表示」
公開情報から、URL、ISBN/ASINといった識別コードの類をデータベース化しているだけなので、収集している情報の利用については、法律的には問題ないと考えています。倫理的、感情的には問題がある場合もあると思いますが、それらについては個別対応(やめてといわれればやめる)しています。あと、最近はrobots.txt等も見るようにしつつありますが、まだ完全ではありません。
なんでサービスとして公開しているのかというと、
- 私が便利なものは、他にも便利だと思う人もいるだろう
- ネットワークにそれなりの負荷をかけてデータを収集するんで、その成果はネットワークに還元(公開)しよう
といったあたりの意図です。
また、AmazonアソシエイトやGoogle AdSenseの利用に関しては、基本的に「アフィリエイトを使って、自給自足(ひも付きじゃないお金)で面白そうなサービスを提供してみよう」といった感じでやっています。アフィリエイト収入があればサービスが継続できますし、持ち出しが限界を超えれば、規模を縮小するなりやめるなりして対応します。
サイトの説明の類がないのは、個人がゲリラ的にやっているものなので、ドキュメント化できるほどいろいろなものがまとまっておらず、気が向いたら機能が追加されたり廃止されたりしている、といった感じだからです。あと、ドキュメント書きの暇があれば、代わりに面白い機能の一つでも作った方がモチベーションを維持できるので、そっちに手を出しがちだということもあります。逆に言うと、こういった反応がないとなかなかこういう文章を書く機会ができません。
あと、確かにサイト情報のところの「紹介したメディア」で、うちのアソシエイトIDを使ってリンクを張るのは、いかにもかすめとりっぽさ度が高い気がしたんで(実際には「サイト情報」ページを見る人はほとんどいないけど)、ひとまずそこからはうちのアソシエイトIDは外してみました(blogmapではISBN/ASINしかデータベースに持っていないので、元サイトのアソシエイトIDはつけられません)。
ちなみにJavaScriptが使える環境ならば、「アソシエイト広告ツール」なんてものを使うと、blogmapが収集したデータを元に、好きなアソシエイトIDを使った広告を各サイトに表示することができます(この手の、情報取得元に還元できるような機能を充実させるといいのかなー)。
ひとまずはこんなところで。
ゴミを残さずsession_regenerate_idする (16:34)
単にsession_regenerate_idしただけでは、古いセッションIDにリンクしたセッションデータが消えないので、
session_start(); $tmp = $_SESSION; session_destroy(); session_start(); session_regenerate_id(); $_SESSION = $tmp;
なんて感じで回避していたんだけど、これだと古いセッションIDにリンクした空のセッションデータが残るんでうざいなー(セキュリティ的には問題ないけど)と思っていた。けど、次のようにやればゴミを残さずにセッションIDの付け替えができそうだな。
session_start(); $tmp = $_SESSION; session_destroy(); session_id(md5(uniqid(rand(), 1))); session_start(); $_SESSION = $tmp;
新しいセッションIDの生成ロジックは「md5(uniqid(rand(), 1))」でいいのかという点については、要検討。
Windows環境でバイナリ配布の4.1.11を (13:48)
default-character-set UTF-8で使おうとしたんだけど、my.iniを書き換えても反映されない。もしかしてmy.iniって見てないの? しょうがないんで必ずプログラムの頭で
set names utf8
とかするようにしてごまかしていたんだけど、ふと思い立ってMySQLサービスの起動オプションに--default-character-set=utf8をつけたら、ちゃんと効いた。そういやそっちで指定する手もあったんだっけ。
それにしても、MySQL 4.1以降はいろいろ扱いが面倒だなー。
いろいろトラブってました (22:07)
主にMM/Memoとblogmapで18時くらいからDBエラーが出て死んでいたと思います。で、そのエラーメールが山のように飛んで、メールのウイルスチェック処理(結構負荷が高い)が溜まってしまったため、tDiaryを入れているサーバーにもほとんどアクセスできなくなってしまった、という展開。
DBエラーの理由は、なぜかときどき発生するキャッシング用テーブルのインデックスが壊れていたため。myisamchk -rで簡単に直るんだけど、これなんで発生するんだろうなー。毎回同じテーブルで発生するから、このテーブルの構造か使い方に問題があるんだろうけど、特にこのテーブルが高負荷になるってわけでもないハズなんだけど。複数のマシンで発生するから(今回はマスターサーバーのみ、前回はレプリケーションサーバーのみで発生)、ディスク不良ってわけでもないみたいだし。
アドホックに、テーブルが死んだら自動的にmyisamchkを走らせる監視プロセスでも走らせておこうかなー。
もしかしてrecent〜って (22:36)
makerssのデータを使って最近のcommentとかtrackbackを得ているのか? RSSにcommentやtrackbackを出さないようにしようと、makerssのそれっぽいところを削ったら、recent〜に出てこなくなったっぽい。あとコメント後にエラーも出ているな。ひとまず元に戻しておこう。