【tips】 PEAR::Cache_Liteのディレクトリ構造を深くする

レンタルサーバではmemcachedなどを使用することが出来ないので、何らかのファイルキャッシュを使うことが多いと思うんですが、いくつかのサービスではPEAR::Cache_Liteを導入しています。 Cache_Lite 規模が大きくなるとI/Oがネックになるので、ファイルキャッシュはいずれ問題になってくるのですが、小規模なサービスであればこれで十分。 で、導入自体は極めて簡単なんですけど、気になったのはディレクトリ。UNIX系サーバでは1ディレクトリにおけるファイル数は10,000くらいなので、サービスを継続しているといずれキャッシュが作れなくなってしまう。でもCache_Liteの設定(インスタンス生成時にオプションを配列で渡す)ではディレクトリを渡すだけ。今は大丈夫だけど念のためディレクトリを構造化したいな… と思ったら、ちゃんとその設定がありました。 マニュアルは細かく読まないとダメだね。

続きを読む

PDO::FETCH_CLASSとgetter/setterのマジックメソッド

「食わず嫌い」とはアレなものでして、長いことPDOでfetchといえばFETCH_ASSOCと思ってたんですが、なんだよ、FETCH_CLASS超便利じゃん、と言うことに気付いたのでいくつか試行錯誤してみるなど。 まぁ便利さ言うならちゃんとO/Rマッパー使えこの野郎という話ですけど、設定が面倒なときもあってついあれなので…FETCH_CLASSとマジックメソッド使ってみたかった的なアレでひとつ。

続きを読む

【メモ】crontabのバックアップ

crontabを大幅に編集したくなったので、バックアップ取れないかなぁと検索して調べていたのだけど、行き当たった情報見たら何かもの凄く簡単な話だった。あらら。

crontabのバックアップ

crontab -l > ~/backup/crontab.20101126

crontabの復元

crontab ~/backup/crontab.20101126
要するにテキストファイルへ書き出してバックアップ、それを読み込んで復元。 「-l」と言うオプションは内容を表示するオプション。 本当に単純なシステムなのねぇ。cronって。それがいいんだけど。

参考:

cron 登録ジョブ crontab のバックアップ CRON < Wiki | さくらのレンタルサーバ非公式FAQ

続きを読む

【メモ】Symfonyのログローテーション

ここを参考に。 A Gentle Introduction to symfony | 第16章 – アプリケーションの運用ツール | symfony | Web PHP Framework cronで次のように設定すると良い。

php symfony log:rotate AppName prod --period=7 --history=10
このようにすると、
  • アプリケーション「AppName」のprodログを対象に
  • 1つのログファイルの期間は7日間
  • バックアップファイル数は最大10個
と言うルールでログをローテーションさせる、と。 なるほど。

続きを読む

未定義の特殊文字の実体参照が含まれるXMLファイルを無理矢理パースする

RSSを始めとするXMLで使用できるる特殊文字の実体参照は、以下の5つだけです。 (何の定義も与えられていない場合)

  • &lt; → <
  • &gt; → >
  • &amp; → &
  • &apos; → '
  • &quot; → "
これ以外の特殊文字の実体参照(例えば&times → &timesや、∞ → &infin;)が含まれている場合、パース時にパースエラーとなって読み込めないことがあります。ブラウザで表示しようとしてもそこで途切れてしまったり、返り値がfalseになったり(例えばSimpleXML)。動作としてはそれで正しいのですが、
  1. RSSを配信しているのが自分ではない
  2. 何らかの処理のために無理矢理読み込んでパースしたい
と言うときがあります。 本来であれば、パース処理の方に手を加えるべきなのでしょうが、面倒なので次のような過程を踏んでみました。

続きを読む

【Tumblr】 Tumblr Queueの最新ページへのリンクを生成するGreasemonkeyを更新しました。(0.0.2)

Tumblr Queueの最新ページへのリンクを生成するGreasemonkeyを更新しました。 って、ちょっと解りづらいですが上のような表示になります。

インストール

https://gist.github.com/raw/614547/tumblr_queue_latest_link.user.js

更新履歴

0.0.1 → 0.0.2

  • 二重に表示されてしまう時があるのを修正した

続きを読む