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
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);
とりあえず対策終了。
カテゴリー: レンタルサーバーやcgi
2011.07.27
2010年11月10日 改修により 速度は、正常化した。
と思ったのもつかの間
また 激 遅になっている
どうしうようもない クソ サーバー
と思ったのもつかの間
また 激 遅になっている
どうしうようもない クソ サーバー
カテゴリー: レンタルサーバーやcgi
2010.11.22
PukiWikiの耐久性テスト 2010
pukiwiki 1.4.8 snapshot 動作テスト 2010 その1
今日の講義は、
PukiWikiの耐久性テスト
ホームページ代わりにコンテンツ管理として利用できないか
以前検証して動作に不安があったので、ホームページ代わりには不適との結果になったのですが、
数年経過したので、再度検証してみることにしました。
1.4.7のバグがあるのに安定版の更新が数年ないようなので
開発が停止していそうな感じですが、実用に耐えうる物でしょうか。
まず、圧縮ファイルの日付を見る限り、あまり進歩していなさそうな印象です。
期待できない感じです。
検証したい項目
トップページの表示にかかる時間を比較(2回実行)
挿入ページ名 : Plugin/counter/test/_番号
挿入データ:ページ(内容:ファイル名)、カウンタ(内容:番号)
(PukiWiki 1.4.8_alpha2)
NTFSフォルダ圧縮を使うと200件程度で、遅延が発生してとても使えるレベルではなかった。
1000件程度で、popularプラグインは遅くなるので、気になり始めたらキャッシュ機能を付加した方がいいだろう。
実験用に修正した物は、除外ページのパターンマッチで鈍足になってしまいます。
キャッシュがなくても 1万件で1秒なので、キャッシュがなくても問題にはならないだろう。
コードを最適化すればさらに効率よくすることができる。
カウンタの問題は解決した。
しかし、ページが増えるとカウンタも比例してファイルが増えるのは、美しくない。
バックアップにも時間がかかることになる。
こういうどうでもいいデータは、すべてデータベースに格納すべきだろう。
次にページを更新をすると問題が発生した。
記事数に比例して、投稿完了までの時間が長くなる。
file.phpに問題があることがわかった。
更新速度が遅くなったと感じ始めたらコードの修正が必要。
修正コードが必要な場合は、公式サイトにアクセスして最新版/パッチをゲットしよう。
埋め込み画像は、転送リソースを消費するので、
サーバーに実行数制限がある場合、数人のアクセスでサーバーエラーになる可能性があります。
また、低速の回線から接続した場合、タイムアウトになってしまうでしょう。
コードを修正して、画像表示用のキャッシュフォルダを用意すると改善できるだろう
【PHP】
PHP 5.3については、将来廃止予定の構文を使っていると警告がでるだけで、とりあえず支障はないようだ。
【結論】
小規模の企業サイトでは、ページ数が少ないためcssとjsで外観は簡単に変更できるので、
執筆:2010/11/20
著作権:okamerin.com
著作権: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 |
使用を停止 | 使用 | ||||||
条件 |
|
更新速度が遅くなったと感じ始めたらコードの修正が必要。
修正コードが必要な場合は、公式サイトにアクセスして最新版/パッチをゲットしよう。
埋め込み画像は、転送リソースを消費するので、
サーバーに実行数制限がある場合、数人のアクセスでサーバーエラーになる可能性があります。
また、低速の回線から接続した場合、タイムアウトになってしまうでしょう。
コードを修正して、画像表示用のキャッシュフォルダを用意すると改善できるだろう
【PHP】
PHP 5.3については、将来廃止予定の構文を使っていると警告がでるだけで、とりあえず支障はないようだ。
【結論】
ページ(データ)数に比例して、ページ更新が遅くなります。
ページ内のプラグインによっては、さらに鈍化させます。
数人/分の訪問のプチホームページ程度なら、問題はないだろう。
動作を鈍化させることがあるのでプラグインを利用する際は注意が必要だ。
また、一覧は全部名前を列挙するので、改善した方がいいだろう。
しかし上記の問題は、
カウンタと日付データをSQLiteに同時複製した単純な修正で
このように速度の改善ができました。
SQLiteは、クラッシュしやすいのでMySQLなどを使えば安全です。
現状では、小規模ならホームページ代わりに、ならないことはない。
システムが単純なのでローカル環境で個人・社内のメモ帳 的な使用にはいいかもしれない。
外部に公開する場合は、セキュリティを考慮すると
普通に市販のHTMLエディタ(ホームページビルダーなど)で書いた方が安全であり管理の手間も大幅に軽減できるしょう。
ページ内のプラグインによっては、さらに鈍化させます。
数人/分の訪問のプチホームページ程度なら、問題はないだろう。
動作を鈍化させることがあるのでプラグインを利用する際は注意が必要だ。
また、一覧は全部名前を列挙するので、改善した方がいいだろう。
しかし上記の問題は、
カウンタと日付データをSQLiteに同時複製した単純な修正で
このように速度の改善ができました。
SQLiteは、クラッシュしやすいのでMySQLなどを使えば安全です。
現状では、小規模ならホームページ代わりに、ならないことはない。
システムが単純なのでローカル環境で個人・社内のメモ帳 的な使用にはいいかもしれない。
外部に公開する場合は、セキュリティを考慮すると
普通に市販のHTMLエディタ(ホームページビルダーなど)で書いた方が安全であり管理の手間も大幅に軽減できるしょう。
小規模の企業サイトでは、ページ数が少ないためcssとjsで外観は簡単に変更できるので、
見栄をはって管理と手間がかかりセキュリティリスクのあるCMSを使うメリットはない。
CMSの維持管理に費用や時間をかけれない場合や、Web IT管理者のおけない弱小企業は、
Webハッキングに強い静的ページが作れるホームページビルダーなどを強くお勧めする。
Webハッキングに強い静的ページが作れるホームページビルダーなどを強くお勧めする。
(外注費や人件費などを考えるとHTML編集アプリ代のほうがお得であることは言うまでもない)
動的コンテンツがいい場合やページが数百になる場合は、
ブログなどコンテンツ管理システム系のソフト(wordpress , joomlaなど)やMediawikiのほうがいいだろう。
困ってからデータコンバートして移行するのもいいが手間と時間を考えると
最初から耐負荷仕様のものを選んだ方が賢明である。
動的コンテンツがいい場合やページが数百になる場合は、
ブログなどコンテンツ管理システム系のソフト(wordpress , joomlaなど)やMediawikiのほうがいいだろう。
困ってからデータコンバートして移行するのもいいが手間と時間を考えると
最初から耐負荷仕様のものを選んだ方が賢明である。
カテゴリー: レンタルサーバーやcgi
2010.11.22
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 |
|
|||
例 |
例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 |
|
|||
注意 |
make installだと ~/local/perl/lib/perl5/site_perl/5.8.9/mach/Digest/SHA.pm みたいになるので注意。 @INCに追加するスクリプト書いてそれをrequireすると簡単に指定できます。 |
カテゴリー: レンタルサーバーやcgi
2009.06.22
執筆:2009.03.08
更新:2009.03.09
更新: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を
選択するといいでしょう。 書式が全く違うので、選択は、慎重に。
カテゴリー: レンタルサーバーやcgi
2009.03.09