趣味のプログラム工房

2011年03月

家庭内LAN整備 ルータ:WZR-HP-G301NH

プラネックスの安い製品からBUFFALOの「WZR-HP-G301NH」へ移行しました。

型番としては2~3個まえの製品ですが、最新のものよりも値段が安く、性能もいいので、これを選びました。(最新のはデータカード搭載機能やプリンタサーバ機能がついてます。)

この商品、ネットワークの性能(スループット)はNEC製の製品より劣りますが、その他の部分ではかなり遊べそうな製品です。


私がこれを選んだ基準は、まずギガビットイーサネット対応、無線LANも300Mbps対応、DDNS対応なことです。
+α、USB端子付き、電波の強さなどなどですが、この製品には他の製品にはない「PPTPサーバ」機能が付いているんです!!

PPTPパススルーじゃなくサーバ機能です!!
というわけで、買っちゃいました。


で、使っていていろいろ気がついたことをメモ、、、

プラネックスからの乗り換えですが、以前は使えていたローカルマシンからグローバルIPアドレスでのローカルマシンへのアクセスができなくなりました。
てなわけで、ローカルマシンで、DDNSの設定の確認ができなくなりました。
まあ、直接できないだけで、やり方はいくらでもありますが。
どうやら、こういう仕様のようです。

あと、外からwake on lanが効いていない??
まあ、これはルータのWEB画面のユーティリティからできるのでいいです。


また、VPNで接続(PPTPサーバを利用)しても、DLNAの接続がうまくいきません、、、これはiphoneのソフト問題かな??できるソフトもあるので。
8playerはダメでPlugPlayerはなんとか繋がるようです。


2011年03月09日


UTF-8で書いたperlが動かない。500エラー

メモ帳などでUTF-8でPerlのプログラムを作り、FFFTPでアスキーモード・無変換でアップしてもプログラムが動かない。
どうやら、仕様らしい。

調べてみると、メモ帳でUTF-8で保存するとBOMというフラグがついてしまうみたいです。
そのため、うまく動かないらしい。
メモ帳だけでなく、他のソフトでも動かないことも多々あるので他にもいろいろと原因があるきもしますが…
とりあえず、確実に動かす方法としては「文字コード変換ツール」を使います。
これで、UTF-8のBOM無しに変換してからアップすればプログラムにエラーがなければ動くはずです。
Unix系だとnkfというツールがある。
2011年03月21日


Cache::SizeAwareFileCacheについて(1)

楽天ウェブサービスのレスポンスキャッシュするためにCache::SizeAwareFileCacheを使用し始めました。
Cache::SizeAwareFileCacheはCache::FileCacheの拡張版でキャッシュサイズの制限をかけることが出来ます。
通常のCache::FileCacheは時間だけ。

使用例
use Cache::SizeAwareFileCache;
my $cache = new Cache::SizeAwareFileCache({
'namespace' => 'MyNamespace',
'default_expires_in' => 60*60*6,#6時間
'max_size' => 10000,'cache_root' => 'res_cache'
});

cache_rootフォルダの中にnamespaceフォルダを作ってその中にキャッシュが保存されます。

2011年03月21日


Cache::SizeAwareFileCacheについて(2) xreaで利用

Cache::SizeAwareFileCacheを使おうと思ったのですが、私の使っているXreaサーバでは残念ながらモジュールが入っていないようです。
そこで、自前でperlのモジュール(pmファイル)をダウンロードしてきてxreaサーバにアップロード。

activeperlの場合
ppm install Cache::FileCache
でローカルにインストールできます。
インストールされたモジュールは、perlのインストールフォルダの下\site\libにあります。(Cacheフォルダ)
該当のフォルダをサーバへアップロードします。


アップロードしたモジュールを使うには
xreaの場合の例
use lib qw(/virtual/ユーザID/public_html/module);
とします。(moduleフォルダの下にCacheモジュールを入れた場合)
あとはモジュールをuseすればOK
これで使えるはずです。

2011年03月21日


Cache::SizeAwareFileCacheについて(3) キャッシュ実装で高負荷

キャッシュを使い始めたらキャッシュを探す処理でかなりの負荷が掛かっているらしく余計遅くなってしまいましたorz
ということで、キャッシュサイズの調整が必要です。大きければいいわけでもないらしいです。

と、思っていたのですが、どうやら別の可能性が出てきました。
Cache::FileCacheにはキャッシュの生存時間を制限する機能(default_expires_inで指定した時間)があるのですが、期限の切れたキャッシュを削除するメソッドとして Purge()があります。
どうやらこのPurge()メソッドを毎回動かしていたのが高負荷の原因の可能性が高いです。
また、max_sizeの指定についても負荷が高いらしく、より、負荷を下げたいのであれば、max_sizeは指定せずに、定期的にlimit_size()メソッドを使用するのがいいみたいです。
(max_sizeを指定するとキャッシュを使用する度にlimit_sizeメソッドを実行するようなものなので指定しない方が低負荷なのは当たり前ということですね。)
2011年03月21日