アップデートに負けないWPtouchカスタマイズ

カスタマイズした内容がアップデート適用で消える

WPtouch Moblie Plugin(以下WPtouch) は自分のサイトをあまり深く考えなくともスマートフォン対応にしてくれる非常に便利なプラグインで、自分の環境に合うようにスタイルシートなどをカスタマイズして使っているユーザも多いと思う。このサイトもスマートフォン向けには、WPtouchのスタイルシートbauhausを少し手を入れて使っている。

ところがプラグインがアップデート(更新)され、これを適用した場合はこうして手を加えた部分もすべて初期状態になってしまう。 続きを読む アップデートに負けないWPtouchカスタマイズ

VBScriptの正規表現における改行(LF)

VBScriptの正規表現エンジン(RegExpオブジェクト)のドットメタ文字(.)は、改行(ラインフィード、vbLf)にはマッチしない。MultiLineプロパティにTrueを指定しても同じ。知ってる人には当たり前の話なんでしょうけど、なつきは「MultiLine=複数行処理」を誤解してハマったので。MultiLineプロパティをTrueにすると、文字列の先頭(^)、末尾($)がそれぞれ改行(LF)の直後、直前にマッチするようになる。それだけ。

続きを読む VBScriptの正規表現における改行(LF)

WordPressへCSV形式で記事を移行

4年ぶり?にサイトリニューアルしました。PHPによる独自システムからWordPressベースに変更。デザインそのものはほとんど変わってないというか新しいのが思いつかなかった。WordPressに移行したことで、スマートフォンと携帯での閲覧にも最適化できてるはずです。プラグインさまさまですな。過去の記事もこれから順次移行していきますので。あ、以前のサイトはhttp://ska.xii.jp/にしばらく残しておきます。

続きを読む WordPressへCSV形式で記事を移行

IPアドレスでコメントブロック

中国からの政治的な中傷コメントがたびたび見かけられるので、ちょっと対策。中国のホストの大半が逆引きできない(IPアドレスからホスト名の名前解決ができない)のを利用して、逆引きできないIPアドレスからはコメントできないようにしました。

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if( !$host || preg_match('/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/', $host) === 1 ){
  /* エラー処理 */
}

コメントが送信されたとき、環境変数 REMOTE_ADDR に格納されたアクセス元のIPアドレス(xxx.xxx.xxx.xxxの形式)をgethostbyaddrして、戻り値がIPアドレスのままだったら(ホスト名の解決に失敗したら)エラー処理に移行。

かの国にも熱心なファンはいるわけで、一部の狂信的愛国者のために特定地域まるっとシャットアウトするような対策を取らないといけないのは非常に心苦しいのです、が、現状致し方ない。

<2011/1/29 17:51追記>正規表現が間違ってたのを修正しました。

コメント処理を軽く

コメントの投稿処理(投稿ボタンをクリックしてから画面が更新されるまでの処理時間)を軽くしてみました。

右側の「COMMENTS」って部分にコメント一覧がありますが、今まではここに「直近にコメントのあったエントリ名とコメント数」を表示してました。ここの表示のために、コメントが投稿されるたびに、全エントリのコメント数と最後にコメントが投稿された時刻を取得してコメント投稿時刻順エントリ一覧を作ってテキストファイルに書き出して……というちょっと凝った処理を書いていました。

凝った処理だけに、エントリ数やコメント数が増えてくると当たり前ながら処理に時間がかかるようになる。レスポンスが悪くなって二重投稿も増えてきたので、仕方なく「コメントの投稿時刻が新しい順にエントリ名+投稿者を表示」という巷のブログシステムにありがちな広く採用されている方式に変えました。こちらはやっていることは「コメントデータを作成時刻の新しい順にソートする」だけ。……うん、やっぱり余計なことをしないと速いわ。