Archive for 1月, 2012

LionのSafariが重い

2012年 1月 26日 Published by under 管理

昨年末に作業環境を刷新して一月ほど経とうとしてるんだけど、iOS というか WebKit のウェブアプリ開発で Safari を主に使っていると時折、従来に見受けられた JavaScript の無限ループみたいな感じの高い負荷で動かなくなってしまうことがあったのでその回避方法を公式のフォーラムから。

- Quit Safari
- Turn off bookmark syncing in the iCloud System Preference pane (under the Apple Menu)
- Select the Finder, under the GO menu, select “Go to Folder…”
- Enter in “~/Library/ ” (no quotes, first character is a tilde)
- Renamed the files “Bookmarks.plist” and “Bookmarks.sprt” to “Bookmarks-old.plist” and “Bookmark-old.sprt”
(.sprt appears to be a legacy file on my system not being used anymore, so you may not have it.)
- Go back into the Systems Preferences and turn on iCloud Bookmark settings
- Start Safari, give it some time to resync your bookmarks from the cloud.

引用元: What is SafariDAVclient?: Apple Support Communities.

ここではリネームしていますが、デスクトップに置いたりゴミ箱にいれてしまっても大丈夫かと。ちなみに .sprt ファイルは存在しませんでした。

原因と方法を簡単に言うと、iCloud でブックマークの同期を使っている場合に起きる事が多いので、Lion から不可視となったライブラリ>Safariフォルダにある Bookmarks.plist を再構築すると直りますよ、ということらしいです。

ところがどっこい、「SafariDAVclient taking 100% of CPU on Mac OS X 10.7.2 | Dave on Macs」によると、ブックマーク同期サービスを利用していなくてもこの問題が起きる場合があるそうで、こちらではまた違うやり方が紹介されています。

いずれにせよアクティビティモニタで確認すると SafariDAVclient というプロセスが悪さをしていることに変わりはなく、同期サービスを利用しているので前者の方法を使い一先ず処理速度が復帰したこともあり押さえているだけなのですが、もし今後問題が復活した場合は iCloud によるブックマークの同期サービスを控えて後者について試してみようと思います。(リーディングリストなんてサードパーティのサービスでも十分賄えますしね。)

phpBBのスパム投稿対策

2012年 1月 26日 Published by under 管理

管理中の phpBB 3 を使ったフォーラムに日本語以外のスパム投稿が多くなってきたたので、「phpbb-禁止ワード設定と英語のみ禁止でspam投稿対策 – 検索プログラマのメモ帳」を参考にしつつ次のように正規表現のパターンを少し改変して対応した。

//英語のみ禁止チェック
//$chkresult = ((mb_detect_encoding($chkmsg, "auto") == 'ASCII') && (strlen($chkmsg) != 0));
$chkresult = ((!preg_match('/[一-龠]+|[ぁ-んー]+/u', $chkmsg)) && (strlen($chkmsg) != 0));

というのは、近年英語だけではなくてロシア語や中国語のスパム投稿も増えているので、そのすり抜けを防ぐ意味がある。それでも平仮名混じりのものや機械翻訳を使った意味不明な投稿は受け付けてしまうので、そこは上述したリンク先にあるように禁止語を手作業で追加するしかない。前者の場合は比率を比較するようなことも考えられるけれど、応答速度を考えるとあまり実用的ではないかもしれない。

アップデートや MOD のインストールといった正攻法で対応することが本来は望ましいのだけど、v2時代から使っているレンタルサーバーに絡んで文字コードが EUC だったり、MOD の日本語対応が甘かったり、その辺りは WordPress とちょっと違うところなので言語を理解していれば直接記述した方が手っ取り早い。理解していなくても数行差し込むだけなので特に難しい事はないと思う。