日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

AWSまたしても改悪 $AWS_Version = '2011-08-01'

執筆:2011.07.27

AWSからメールが届いた。
  重要:アマゾンProduct Advertising APIの仕様変更について
またかよ!!(>_<)

ItemPage
 現在 MAX400ページ
 が10月下旬頃から10ページに制限だそうです。

$MoreSearchResultsUrl = $xml->xpath('//aws:ItemSearchResponse/aws:Items/aws:MoreSearchResultsUrl');

返ってきたURLに接続してもエラーなぜだ。

$AWS_Version = '2011-08-01';
8月に入っていないから、整備ができていないのだろうか?
とにかく、ぎりぎりまで、かえんぞ!

  // Product Advertising API change 2011年10月26日
  // mktime ($hour , $minute, $second , $month ,$day, $year)
  if (time() < mktime(0, 0, 0, 10, 26, 2011) )
   { $AWS_Version = '2010-11-01';   define('AWS_MAX_ITEM_PAGE' ,  (int) 400); }
  else
   { $AWS_Version = '2011-08-01';   define('AWS_MAX_ITEM_PAGE' , (int) 10); }

途中省略

      global $MoreSearchResultsUrl;
      $MoreSearchResultsUrl = $xml->xpath('//aws:ItemSearchResponse/aws:Items/aws:MoreSearchResultsUrl');
      if ($MoreSearchResultsUrl)
         $MoreSearchResultsUrl = (string) $MoreSearchResultsUrl[0];
        else
         $MoreSearchResultsUrl = "";

//..

       global $MoreSearchResultsUrl;
       if ($MoreSearchResultsUrl)
       $s .= sprintf(" <a href=\"%s\" target=\"_blank\" rel=\"nofollow\"> 続きをamazonで 検索する</a>", $MoreSearchResultsUrl);


とりあえず対策終了。

2011.07.27

2010年11月10日 改修により 速度は、正常化した。

と思ったのもつかの間

また 激 遅になっている

どうしうようもない クソ サーバー
2010.11.22

PukiWikiの耐久性テスト 2010

執筆:2010/11/20
著作権:okamerin.com

pukiwiki 1.4.8 snapshot 動作テスト 2010 その1

今日の講義は、
PukiWikiの耐久性テスト

ホームページ代わりにコンテンツ管理として利用できないか
以前検証して動作に不安があったので、ホームページ代わりには不適との結果になったのですが、
数年経過したので、再度検証してみることにしました。

1.4.7のバグがあるのに安定版の更新が数年ないようなので
開発が停止していそうな感じですが、実用に耐えうる物でしょうか。

まず、圧縮ファイルの日付を見る限り、あまり進歩していなさそうな印象です。
期待できない感じです。

検証したい項目
  • 記事数増加に伴う動作速度との関係
    • 人気記事順 #popular プラグイン
    • 最新の更新 #recent プラグイン
    • 最終更新
  • ページナビゲータにした方がよさそうなもの
    • 一覧
    • ファイル一覧
  • タイムアウトしそうなもの(記事数が大量の場合)
    • 一覧
    • ファイル一覧
    • 単語検索
    • ページ更新
    • 画像
  • 共有サーバーで問題を起こしそうなところ
    • 画像を使ったページの同時アクセス
      画像も1アクセスとられてしまうので
      数人の同時アクセスで500エラーになりやすい
      refプラグインを改造し画像を静的にキャッシュして、サーバーにそれを使うように変更したほうがいい
  • その他いろいろ
  • PHP 5.3

記事数増加に伴う動作速度との関係

phpコード数行で、データの挿入、削除をループで行う物を作りテストしてみました。

MenuBar の内容
#popular(5,^(MenuBar|SandBox|FrontPage)$)
#recent(10)
#hr
RIGHT:&edit(MenuBar,noicon){edit};
#counter

トップページの表示にかかる時間を比較(2回実行)
   挿入ページ名 : Plugin/counter/test/_番号
   挿入データ:ページ(内容:ファイル名)、カウンタ(内容:番号)
(PukiWiki 1.4.8_alpha2)

挿入したペー ジ件数
表示にかかった時間
HTML convert time (秒)
popular
なし
popular
あり
修正なし 修正あり
(パッチ)
1000件 0.131
0.137
0.743
0.721
(キャッシュなし)
0.279
0.295
(キャッシュあり)
0.219
0.268
5000件 0.157
0.142
3.167
3.137
(キャッシュなし)
0.426
0.380
10000件 0.163 6.253 (キャッシュなし)
0.731
10000件
(NTFS
フォルダ圧縮あり)
0.239
0.275
105.256
104.108
(キャッシュなし)
1.274
1.249

(キャッシュあり)
0.292
  ※PCのほかのタス クの影響で
多少時間が前後しています

NTFSフォルダ圧縮を使うと200件程度で、遅延が発生してとても使えるレベルではなかった。
1000件程度で、popularプラグインは遅くなるので、気になり始めたらキャッシュ機能を付加した方がいいだろう。

実験用に修正した物は、除外ページのパターンマッチで鈍足になってしまいます。
キャッシュがなくても 1万件で1秒なので、キャッシュがなくても問題にはならないだろう。
コードを最適化すればさらに効率よくすることができる。

カウンタの問題は解決した。
しかし、ページが増えるとカウンタも比例してファイルが増えるのは、美しくない。
バックアップにも時間がかかることになる。
こういうどうでもいいデータは、すべてデータベースに格納すべきだろう。

次にページを更新をすると問題が発生した。
記事数に比例して、投稿完了までの時間が長くなる。
file.phpに問題があることがわかった。

 
ページの更新にかかる時間
(ストップウォッチを使用)
file.php:page_write,put_lastmodified
修正なし
修正あり
200件 約1秒 -
1000件 約1秒 約1秒
5000件 約2秒 約1秒
1万件 約4秒
フォルダ圧縮あり
約50秒
約39秒
約1秒
フォルダ圧縮あり
約1秒
#popular
#recent
使用を停止 使用
条件
使用したページ MenuBar
アクション 未編集でページの更新クリック
その他 #counterあり

更新速度が遅くなったと感じ始めたらコードの修正が必要。
修正コードが必要な場合は、公式サイトにアクセスして最新版/パッチをゲットしよう。

埋め込み画像は、転送リソースを消費するので、
サーバーに実行数制限がある場合、数人のアクセスでサーバーエラーになる可能性があります。
また、低速の回線から接続した場合、タイムアウトになってしまうでしょう。
コードを修正して、画像表示用のキャッシュフォルダを用意すると改善できるだろう

【PHP】
   PHP 5.3については、将来廃止予定の構文を使っていると警告がでるだけで、とりあえず支障はないようだ。

【結論】
ページ(データ)数に比例して、ページ更新が遅くなります。
ページ内のプラグインによっては、さらに鈍化させます。
数人/分の訪問のプチホームページ程度なら、問題はないだろう。
動作を鈍化させることがあるのでプラグインを利用する際は注意が必要だ。
また、一覧は全部名前を列挙するので、改善した方がいいだろう。

しかし上記の問題は、
カウンタと日付データをSQLiteに同時複製した単純な修正で
このように速度の改善ができました。
SQLiteは、クラッシュしやすいのでMySQLなどを使えば安全です。

現状では、小規模ならホームページ代わりに、ならないことはない。
システムが単純なのでローカル環境で個人・社内のメモ帳 的な使用にはいいかもしれない。

外部に公開する場合は、セキュリティを考慮すると
普通に市販のHTMLエディタ(ホームページビルダーなど)で書いた方が安全であり管理の手間も大幅に軽減できるしょう。

小規模の企業サイトでは、ページ数が少ないためcssとjsで外観は簡単に変更できるので、
見栄をはって管理と手間がかかりセキュリティリスクのあるCMSを使うメリットはない。
CMSの維持管理に費用や時間をかけれない場合や、Web IT管理者のおけない弱小企業は、
Webハッキングに強い静的ページが作れるホームページビルダーなどを強くお勧めする。
(外注費や人件費などを考えるとHTML編集アプリ代のほうがお得であることは言うまでもない)

動的コンテンツがいい場合やページが数百になる場合は、
ブログなどコンテンツ管理システム系のソフト(wordpress , joomlaなど)やMediawikiのほうがいいだろう。
困ってからデータコンバートして移行するのもいいが手間と時間を考えると
最初から耐負荷仕様のものを選んだ方が賢明である。


2010.11.22

Perl バイナリモジュールの追加 覚え書き

Perl 目次

・目次
 ・インストール
 ・
 ・ 
エラー
レンタルサーバーでエラー:さくら
仮想 OS内で再現することを確認
モジュールがインストールされていないことに起因する。
スクリプト実行
Can't locate Digest/SHA.pm in @INC (@INC contains: /home/username/lib/perl/ /usr/local/lib/perl5/5.8.8/BSDPAN
Can't locate loadable object for module Digest::SHA in @INC (@INC contains: /home/username

【結論】
足りないモジュールをインストールして
push(@INC, 'パス');
で追加する

サーバー会社サポートに追加してほしいと要望するのが一番楽で確実。
以下は、応急処置的な方法
Step1 まず共通の読み込みできるファイルを作ります。
これは、パス変更時に1回の修正で済ませることができるようにするためです。
(例)
push(@INC, "/home/username/local/perl/lib/perl5/site_perl/".sprintf("%vd", $^V).'/mach');
push(@INC, '/home/username/local/perl/lib/perl5/site_perl/5.8.9/mach');
注: perlがバージョンアップした場合のために上記のように変数と 定数固定の2つを用意する

   # UNIX    $ENV{HOME}
   # Windows $ENV{HOMEPATH}
は、apacheのconfで定義されていない場合があるので使用しない方が無難。
Step2
既存のスクリプトに上記のファイルを読み込むように設定します
require "上の内容のファイル";
Step3
cpanを実行して初期値を代入

cpanの初期設定でインストール先を指定します
(cpan初回起動時に表示されます)


If you don't understand this question, just press ENTER.

Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:

    PREFIX=~/perl       non-root users (please see manual for more hints)

Your choice:  [] PREFIX=~/local/perl LIB=~/local/perl/lib/perl5/site_perl/5.8.9/mach

Parameters for the 'make install' command?
Typical frequently used setting:

    UNINST=1         to always uninstall potentially conflicting files

最後までいくと 設定を保存するコマンドが書いてあるので
実行すると次回から聞いてこなくなります。
(2回目の実行からは聞いてこないので間違わないように。)

Step4
必要なモジュールをインストールします
コマンドラインで
cpan モジュール名
cpanの中で install モジュール名

例1
cpan Digest::SHA
例2
cpan
 install Digest::SHA

更新
cpan
  cpanを実行後 ? でコマンド説明を表示して
  update /regexp/ でアップデートするといいでしょう
  update /.*/

 自動更新方法は、不明
tips
更新する名前を1行ずつ書いたファイルを用意します
例: cpan-install-list.txt
Digest
Digest::SHA

次に
cat cpan-install-list.txt  | xargs cpan
を実行するとまとめてインストールできます



cpanの再設定
cpan
cpan> o conf init


非推奨 全部手動更新
仮想 OS内で再現することを確認
push(@INC,"/home/username/lib/perl/");
スクリプト実行
Can't locate Digest/SHA.pm in @INC (@INC contains: /home/username/lib/perl/ /usr/local/lib/perl5/5.8.8/BSDPAN
cp -Rp blib/lib/* /home/username/lib/perl/
Can't locate loadable object for module Digest::SHA in @INC (@INC contains: /home/username
cp -Rp blib/arch/* /home/username/lib/perl/
正常実行

【結論】 ~/lib/per直下に置く場合
perl  -I$HOME/lib/perl Makefile.PL  PREFIX=~/lib/perl
make
cp -Rp blib/lib/* /home/username/lib/perl/
cp -Rp blib/arch/* /home/username/lib/perl/
Step1 cpanのホームページで検索して、
圧縮ファイルを取得
(ソースコード単体ではないので注意)
(cpanのソフトでのインストールは不明。)
Step2
圧縮ファイルの展開
Step3
perl  -I$HOME/local/perl/lib/perl5/site_perl/5.8.9/mach Makefile.PL  PREFIX=$HOME/local/perl
make
make install
注意
make installだと
~/local/perl/lib/perl5/site_perl/5.8.9/mach/Digest/SHA.pm
みたいになるので注意。

@INCに追加するスクリプト書いてそれをrequireすると簡単に指定できます。


2009.06.22

執筆:2009.03.08
更新:2009.03.09

【MediaWiki/Pukiwiki/YukiWiki ローカルメモ帳としての能力の比較】

【導入前に押さえておきたいこと】
  • ローカル環境で メモ帳代わりにWikiを使う場合、書式が違うので、後で別のデータにすることが困難です。
  • 書式の解説の場所は、使い易いかどうか。書式を探すのに時間がかかるようでは、メモになりません。
  • ソフトウェアの文書の検索能力。

Pukiwiki MediaWiki YukiWiki
今回比較したバージョン
1.4.7-stable 1.13.4 1.14.0
2.1.3
必要な物
php
php
perl
インストール
簡単
やや簡単
簡単
見出し毎に編集 できない できる できない
書式サンプルの同梱 ある ない ある
使用したDB
SQLite MySQL 5.1
検索(タイトル+本文)


検索(タイトルのみ)


検索(本文のみ)


ページの移動(名称変更)
やや面倒
容易
やや面倒

【結論】
個人的な好みで使い分けてください。

【考察】
 本文の検索能力が無いようものは、メモ帳機能としては失格です。
ということで mediawikiをSQLiteで稼働は、候補から除外します。
見出し毎に編集できるのは、大変すばらしい能力で、
一見、 mediawikiが良さそうですが、ページ一覧が何となく見にくいです。
ページ一覧を重視する場合は、Pukiwiki又はYukiWikiを、
見出し毎に再編集 したり、ページの名称変更を重視する場合は、mediawikiを
選択するといいでしょう。 書式が全く違うので、選択は、慎重に。
2009.03.09



PR

[PR]