忍者ブログ

開発者ブログ

忍者ブログの元開発者が送る愛と感動と涙のスペクタクル。プログラムの開発日誌やタダの日記です。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ブログパーツって言葉

こんばんわ。misneyです。

最近は、ブログパーツのポータルBloglueで紹介するためのブログパーツを探したりしてます。

なんか、個人的な趣味に走ってしまいつつありますが、なるべくあまり見ないようなブログパーツや、とても素晴らしいブログパーツを登録できるように努力しています。

あまり見ないような=海外のブログパーツという安易な図式から、海外のブログパーツを良く探しているんです。

この「ブログパーツ」って言葉なのですが、海外ではあまり blog partsとは言わないようなのです。

アメリカでは widgetという言葉が浸透しているように思えます。
blog widgetなんて言葉が多いですかね。

badgeとかsealとかとも言うようです。

一昨日あたりは、中国のサイトを見て回っていたのですが、ブログのことを博客とか部落格とかって書かれているみたい。(中国語が解らないので推測)

フランスやスペイン、ロシア辺りも探したりはしているんですが、ブログパーツ自体があまり無い印象でした。

そんな風に試行錯誤しながらブログパーツを探している日々なんです。
大体10時~12時くらいまで海外のブログやブログパーツ(widget)を見て回っているのですが、各国によってブログのスタイルやサービスの構築の仕方など、結構様々あるんだなーって思って見ています。

ここ2年ほどで何度も会社で海外に行かせてもらっているのですが、そこで感じたカルチャーショックと似たようなショックが色々とあるんです。

そんなショックを与えてしまうようなブログパーツを続々ゾクゾクと紹介していければいいなーって思います。

さて、そんな中新しく一個ブログパーツを作りました。
RSSを読み込んで、登録されている画像を取得して最新記事情報のように表示するパーツを作ってみました。

このブログの左下にある変なのがそれです。
どうですかね? なんとなく左下にしてみて、なんとなくFilm風になって、なんとなく現像が出来るようにしてみたんですが。
yanmaさん以上になんとなくですね。こう書くと。

Big Buddhaさんが、「RSSリーダー作ってよー」なんて話も頂いたので、もう少しバージョンをそろえて見たいと思います。

このブログパーツは、近々ブログパーツのBloglueで公開しまーす。

拍手[0回]

PR

ブログパーツ

こんにちは。misneyです。

今日はブログパーツ公開のお知らせです。

J2xCさんによる「石垣崩し」とAluさんによる「アブノーマル診断」の二つのブログパーツを昨日公開しました。

ページデザインはtakanoriさんです。





どちらもブログパーツのBloglueで公開中です。

アブノーマル診断について

アブノーマル診断は「恋愛」「仕事」「家庭」の3つのカテゴリから一つを選び、あなたのアブノーマル度を診断します。

一つのカテゴリには20問程度の質問があり、4つの選択肢があります。
全ての回答から割合を計算し、アブノーマル度をチェックします。

最も多く解答されている選択肢を選んだ場合はノーマル、最も少なく解答されている選択肢を選んだらアブノーマルという具合です。

最後の質問を終えると診断結果が表示されます。
是非ぶっちぎりのアブノーマルポインツを獲得してください。

また、アブノーマルポインツは他の方が回答を行うことで、都度変動して行きます。
解答結果のページでブログパーツ貼り付け用のソースも取得できるので、是非あなたのアブノーマル度を自慢してください。



石垣崩しについて

石垣崩しは昔懐かしいブロックくずし風のゲームです。
少し違うのは、忍者が刀を持って手裏剣を打ち返すところ。

とにかく石垣を壊せば良いというシンプルなゲームですが、地味にはまります。

<遊び方>
1.ゲームが始まると手裏剣が頭の上にあるので、スペースキーを押して手裏剣を投げます。
2.忍者をカーソルキーの右と左で動作します。
3.Zキーで左側に刀を、Xキーで右側に刀を出すことができ、手裏剣を打ち返すことが出来ます。
4.忍者自体に手裏剣が当たってしまうと徐々に忍者の動きが遅くなってしまいますのでご注意を。
5.手裏剣が下に落ちてしまうと右上の忍者の顔が徐々にしょぼくれていきます。
6.忍者の顔が骨になってしまった状態で手裏剣が下に落ちてしまうとゲームオーバーです。




Bloglueについて

最近Bloglueで紹介するためのブログパーツを必死に探していたりします。
海外のブログパーツを良く探しているのですが、結構無いものですね。
アメリカではwidgetとかsealとかbadgeとか色々な呼び方があるらしく、blog partsと書くのは日本くらいみたいです。

そんな感じで続々と素敵なブログパーツを紹介して行きますので、ブログパーツに興味のある方は、たまにBloglueを見てあげて下さいね!


拍手[0回]

PHPの最適化 12 PHP Optimization tips の話。

こんばんわ。misneyです。

今日はPHPの話を。

先日、会社の開発者向けMLであった話。
これを使うと遅いから、こっちを使おうよ!って話なんですが、実際どれくらい違うのかなーと思って、調べてみました。

ただ、自分で調べたので結構違うかも。

1.static使えるならstaticを使えば良いじゃんって話
速度が4倍速いらしい。

method 0.040376/ms
static method 0.037899/ms


4倍は言いすぎな気がするけど早い。



2.require_onceよりもrequireを使おうって話

require_onceはコストが高いらしい

require_once 0.246451/ms
require 0.245562/ms


ちょっと早い。


3.requireは絶対パスだと速いよって話

確かにそうだろうなと思う。
(inclue_pathが2種類の場合)

絶対パス 0.185428/ms
相対パス 0.209057/ms (1種類だと0.188036/ms)


もっと沢山のPATHが登録されていると重くなりそう。



4.time()より$_SERVER['REQUEST_TIME'] が良いって話し
確かにそうかも。

time() 0.043423/ms
$_SERVER['REQUEST_TIME'] 0.043805/ms


それほどでもない。



5.preg_matchよりstrpos

preg_match("/a/", $str)と strpos($str, "a")の違い

preg_match 0.129704/ms
strpos 0.050249/ms


これはかなり違う。事足りるなら文字列関数のが良さそう



6.preg_replace >> str_replace > strtr

strtrが一番早いよって話

preg_replace 0.129719/ms
str_replace 0.049164/ms
strtr 0.049107/ms


strtrはもう少し早かったかも。2回目の計測はstr_replaceとほぼ一緒。
preg_は使うなということで。



7.エラー制御演算子(@)のコストが高い

コストが高いらしい。

最初に$a ='';の宣言をつける場合と
$a = @$str;と
$a = (isset($a)) ? $a : '';でチェック。

@ 0.041778/ms
isset 0.044086/ms
宣言 0.036695/ms


最初に宣言できればそれ。$_POST['param']とか必要な物は@のがいいかも。



8.$row[id]より$row['id']のが7倍早い

これは速さ以前にNOTICEエラー。

[id] 0.043816/ms
['id'] 0.036614/ms


そして遅い。



9.for($i=0;$i<count($arr);$i++){}は、前もって$len = count($arr);に

良く聞く話です。

for($i=0;$i<count($arr);$i++){} 0.056426/ms
$l=count($arr);for($i=0;$i<l;$i++){} 0.055037/ms


繰り返し回数5回での差。いっぱいあるほど顕著に現れるかも。
$arrの数が変わるような場合だけ使う。


あと3つあるんですが、再現で悩んでしまったので省略しました。
この結果は環境によって変わりそうですし、私ですし、多分おかしな点があります。
@の方がisset()より早いとは思えない。
そんな訳で参考までに。



カタコト日記さん(http://d.hatena.ne.jp/koto2/20080518/1211070116
というブログで63+ Best practice optimize PHP code performanceという記事を和訳されたページがあり、これがまた面白いです。


とりあえず、正規表現を良く使ってしまうので、文字列関数を使うように心がけたいと思いました。

拍手[1回]

ブログパーツの紹介サービス、Bloglueを公開しました

こんにちは。misneyです。

昨日、ブログパーツを紹介するサービス、Bloglueを公開しました。
今日はこのサービス、Bloglueについて記事を書きたいと思います。

Bloglue
http://bloglue.jp/


Bloglueのサービスについて

Bloglueは国内外を問わず、様々なブログパーツを紹介して行くサービスです。

珍しいブログパーツや、海外のブログパーツ、便利なブログパーツなどを多く取りそろえ、ブログパーツを探す方にとって簡単で便利に見つけることが出来るサービスにしたいと考えています。

Bloglueではコメントの投稿、投票などが出来るようになっています。
ブログパーツのランキングや便利な検索機能を取り入れ、今とても人気があるブログパーツをより探しやすく紹介して行きます。



ブログパーツの自薦と推薦

Bloglueでは、皆様からのブログパーツ投稿をお待ちしています!

ブログパーツ作成者様からの自薦、一般ユーザー様からブログパーツの推薦など、ブログパーツを紹介したい方が、自由にブログパーツ情報を登録することが出来るようになっています。

登録はもちろん無料!ユーザー登録などの必要もありません!
(ブログパーツ作成者様のみユーザー登録をすることが出来ます。)

素敵なブログパーツを見つけたり、こんなブログパーツ知っているなんて方、凄いブログパーツを作ってしまった場合などにお気軽にご利用頂ければと思います。




ブログパーツ作成者様用の管理画面

あなたが作成したブログパーツの人気度やアクセス数を掲載します。

ブログパーツの作成者様は、ブログパーツの登録の際にユーザー登録をすることが出来ます。

ユーザー登録によって、以下のようなサービスが利用できます。

 ・日々のランキング順位とアクセス数の推移が見れる
 ・登録情報の変更が可能
 ・作成者別でブログパーツを探すことが出来る(予定)

通常機能のコメント投稿や投票機能と合わせて、ブログパーツの人気度を知ることが出来ます。



忍者ブログとの連携

Bloglueは忍者ブログにワンタッチで登録が可能です。

ブログパーツの利用の際に登録が不要であり、Bloglue上で貼り付け用のHTMLタグを掲載しても良い場合は忍者ブログにワンタッチで登録することが出来るの機能を利用することが出来ます。

現在、登録が不要なオリジナルパーツは直接忍者ブログに設置が出来るようになっています。

また、今後忍者ブログル機能が利用できるブログパーツが増えた場合は忍者ブログ管理ページ上でブログパーツを選択・登録することが出来る機能を追加する予定です。

最後に

Bloglueではオリジナルのブログパーツも増やしていく予定です。
色々と面白いものや便利な物を作って行きたいと思います。

Bloglue上で不具合や新しいアイデアなど、お気づきの点などがありましたら、お気軽にお問い合わせいただければと思います!

拍手[0回]

apacheのKeepAlive

こんばんわ。misneyです。

今回はApacheのKeepAliveについて書こうと思います。
前もって書いておきますが、私の妄想的なapache(prefork)の動きを書きます。
色々と間違った点があると思うので、鵜呑みにしないでくださいね。

KeepAliveというのは、HTTP1.1がどうのこうの・・・ということで、ステートレスがアレっていう設定です。

日本語で書くと、一度に多くの情報が得られちゃうよってな機能だと思います。

私が思うKeepAlive

現在のWebページでは、色々なHTTPセッションを必要とするわけです。

・画像
・Javascript
・Flash
・動画/音楽
・CSS

1つのHTMLに100以上のファイルが存在するような場合もあり、その数だけHTTPセッションが張られるなんてことになります。

そこで「1回で全部やっちゃえばいいじゃーん」っと登場したのがKeepAliveだと思います。きっと。

何が一回かというと、こんなのです。

1. apache君「なんかリクエストが来たよ。どいつに任せようかな?」
2. apache君「よーし。ここはいっちょプロセス番号10000君に任せよう。」
3. プロセス番号10000君「はーい。このpathにある画像を送っちゃいます。」
4. プロセス番号10000君「はい。送りました。これで僕の仕事はおーわり。」

これが一回です。
KeepAliveはこの次に「まだ次があるからちょっと待っとけ!」ってな動きをするんだと思います。(妄想ですが。)

KeepAliveがあると、1と2の動作をしないで済むんだと思うんですよね。
厳密には他にも「プロセス足りないからまた作るかー」とか「こいつ働きすぎたから休憩させよう。」とか色々働くわけです。apacheさんが。

そして、TCPセッションも1回で済んでしまう。
色々とお得な機能なんです。

ですが、KeepAliveには欠点もあります。
それは、apacheさんが「まっとけ」と待たせているプロセスさん、待ってる間は何もしないんです。
俺がapacheさんなら「仕事しながら待っとけ」と言う所です。

つまり、プロセスは待っている間他のリクエストを受け付けることが出来ないんですね。
その結果、プロセス数がmax値まで行ってしまったり、無駄なメモリを使ったりするという状態になる可能性があります。

KeepAliveの利点

・Webページの表示が速くなる
・オーバーヘッドを軽減する

KeepAliveの欠点

・必ず設定したTimeout分無駄なプロセス時間を使用する

こんな感じです。
つまり、URLに対するオーバーヘッドの軽減の方がTimeout分の無駄なプロセス時間よりも大きければサーバーコストを削減することが出来るってな仕組みだと思います。

KeepAliveの個人的な感想

KeepAliveについて書かれているページを見ると、サーバーコストを前提に書かれているところが多いのです。サーバー管理者さんが良く書かれているからなのかな?って思うのですが。
実際にはKeepAliveの恩恵はその表示スピードの早さにあると僕は思ってます。

最近のWebページでは、一つのURLで非常に多くの画像やCSSファイルを必要としたりしています。
これをKeepAlive Off で表示すると、結構重いと思うのです。
体感出来るほどにKeepAlive Onの方が断然早い。

なので、ある程度のサーバーコストがかかったとしても、KeepAliveをOnにするだけの価値はあるんじゃないかなーって思うんですよね。

もちろんコンテンツの状態によってはOffにした方がいい場合もあると思います。

理想の設定は?

さて、利点と欠点があるので理想の設定は一つではないと思うのですが、一般的にはどんな設定がいいんでしょうね。

私は今のところ、以下のような設定がいいんじゃないかなーって思います。

  KeepAlive On
  MaxKeepAliveRequests 一番多く使われているセッション数
  KeepAliveTimeout 1

こんなの。
KeepAliveTimeoutの値ですが、0.5とか入力したいところですが、1が最小値。ちょっと書き換えればいいだけだとは思いますが。

KeepAliveTimeoutについては、面白い論文があります。
リクエスト間隔を考慮したウェブサーバのkeep-alive時間の自動設定

こんな実験してみたいなーと思いつつ。
妄想で色々設定している自分が恥ずかしくなったり。

実測テスト

さて、上記の設定で KeepAlive On の時と Offの時の表示スピードを測ってみます。
一度に表示される画像の数が62個あるページを、FirefoxのプラグインFirebugで計測したものです。

KeepAlive Off
表示スピード: 1200~1500/msec

KeepAlive On
表示スピード: 200~680/msec

こんな結果になりました。
大体2~6倍ほど早くなるってな結果ですね。

最後に

瞬間のアクセス数が多いとTimeout 1ってのは致命的な数字になってしまう場合もあると思います。
この設定も、状況に応じて色々な方法があると思います。
また、KeepAliveについては人それぞれ持論があったり、考え方があると思うので、色々調べてみると良いんじゃないかなって思います。

拍手[1回]

画像RSS

おまとめボタン

忍者カウンター

忍者ビジター

忍者アド

ブログ内検索

最新コメント

プロフィール

HN:
mizuno
HP:
性別:
男性
職業:
主に侍などを少々
趣味:
競馬
自己紹介:
母子手帳の仮死と書かれてる場所に丸されてます。

フリーエリア

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました