Diary

日記

benchmak

PHP’s MessageFormatter benchmark

0

Screen Shot 2011 12 16 at 19.13.22 500x76 PHPs MessageFormatter benchmark

Screen Shot 2011 12 16 at 19.16.58 PHPs MessageFormatter benchmark

測定環境は、PHP 5.3.8で、ab -n 500です。
数字は[#/sec]です。

ベンチマークプログラムダウンロード

all-pair-testing

Pairwise testing

0

ソフトウェアテストのテストパターンについてです。

条件網羅のテストケースを作成すると、テストパターンはO(nm) n=項目数 m=各項目のパターン数 となり、指数的にパターンが増えてしまい、複雑な条件判定のテストが困難になります。その問題を解決するために、特徴のあるパターンを抽出してテストをする方法が一般的です。

項目が少なければ人間の頭の中である程度特徴のあるパターン出しが行えますが、数が多くなると網羅することは不可能です。

パターン抽出には様々な手法があり、論文が発表されています。
http://en.wikipedia.org/wiki/All-pairs_testing

商用プロダクトも数多く出回っています。無料で有名なのはMicrosoftが提供しているPICTです。しかし、Windowsのみ。。。。

ってことで、今回はJavaで書かれたコマンドラインツールと、無料で使えるWebアプリケーションを紹介します。

■1.mcdowella’s program

実行結果は以下のようになります。パラメータもいくつか取れます。
Screen Shot 2011 12 12 at 22.27.09 268x500 Pairwise testing

■2.HEXAWISE
同じテストデータを食わせてみました。
Screen Shot 2011 12 12 at 23.16.37 477x500 Pairwise testing

どちらもかなり楽に直行表を作れます。
HEXAWISEの方がオススメです。パターン数に対するカバレッジをグラフ化できます。

php

[PHP]変数vs文字列

0

Screen shot 2011 09 21 at 23.34.32 [PHP]変数vs文字列

文字列を共通化するために、変数で定義する方法と文字を直接書く方法どちらが速いか検証してみたら、ほぼ同じだった。
どっちもどっち。

define.php

<?php
define('word', 'hogehoge');

$start = microtime(true);
for ($i=0;$i<1000000;$i++) {
?>
<?php print word; ?>
<?php
}

print "\n\n";
print microtime(true) - $start;

static.php

<?php

$start = microtime(true);
for ($i=0;$i<1000000;$i++) {
?>
hogehoge
<?php
}

print "\n\n";
print microtime(true) - $start;

100万回実行した結果、2割程度しか差が無かった。
define.php: 1.9965279102325
static.php: 1.7039070129395

rawler

rawler – 再帰リンクチェッカー

0

1. screen 500x286 rawler   再帰リンクチェッカー

概要

rawler
ruby製の再帰リンクチェッカー。
お手軽だけど精度高くて良い。シングルスレッドなので遅い。

インストール

ruby gem install
gem install rawler

実行

~/.gem/ruby/1.8/bin/rawler  --wait=0  http://matsu.tymy.net/blog/
telecom 0570-099-922

TELECOM 0570-099-922

0

WS0807 500x35 TELECOM 0570 099 922

カードの請求を見ていたら、「TELECOM 0570-099-922」とあったので、電話してみたら「トクテン」で利用した決済だった。

「海外利用」とか書いてあるし、とても怪しい感じだったけどコールセンターの人は丁寧な対応だった。

The Share-Nothing Architecture

0

半年前に何かで話題になっていて、執筆中だった記事。。。。

The Share-Nothing Architecture
http://zef.me/883/the-share-nothing-architecture

著者の主張はキャッシュを使わずに、各レイヤーでスケールアウトすればいい。
ファイルシステム、データベース、フロントエンドそれぞれのレイヤでスケールするソリューションがあるから組み合わせて使えばキャッシュしなくてもいいとのこと。

なんか、無理矢理なロジック。それができていればみんな悩まないと思うし、大規模サイトを運用している会社がそれぞれ違ったアーキテクチャを作っている理由は簡単に解決できないからだ。

この主張の穴は、
1.「ボトルネックは必ず発生する」
2.「非リアルタイム」

1.
各レイヤではボトルネックを発生しないようにできるだろうが、レイヤ同士の通信や、マスタサーバへのトラフィックではボトルネックが発生する。

2.
ファイルを更新したら、デプロイ時間がかかる。よって、リアルタイム性とレスポンススピードのトレードオフになる。

どんなアーキテクチャでも結局はリアルタイム性とレスポンススピードのトレードオフになるんだろうなぁ。このトレードオフを解決するために各社が自社サービスに最適化したアーキテクチャを考えているのだろう。

PS:
俺も昔は同じ事かんがえてたよなぁ。。。理想論だよ!

Twitter meeting

0

@a_kodama @niyalist @niw さんとミッドタウンで食事。

思ったことメモ。

  • TwitterをAPRSみたいに使えるかも。天気とか地理情報のインフラとして。人間が読めなくてもいいかも。例→e6 9c ac e6 97 a5 e3 81 af e6 99 b4 e5 a4 a9 e3 81 aa e3 82 8a。 無線で言えば、アナログ通信とデジタル通信が混在している状態。
  • アルファベットと日本語では1文字の情報量が違うからtweetの内容が違う。
  • followingが100~200を超えたらリストを使わないと厳しい。→タグ付け面倒。ページ遷移面倒。
  • Twitterアカウントごとにクラスタができる。(例:地理情報に詳しい人)。専門性が高い場合は濃いクラスタができるっぽい。(mixiがオープンになってればできた気がする)

営業利益÷従業員

0

最近、良く話題になるIT会社の一人あたりの営業利益額をだしてみた。

gree
102人で、57億円
5,580万円/人

DeNA
624人で、130億円
2,080万円/人

mixi
300人18億円
600万円/人

google
推定25000人 2,365M USD
800万円/人

reference: http://twitter.com/studySingapore/status/22577575113
パナソニック
50万円

ソニー
19万円

アップル
4400万円

任天堂
1億円以上

e-learning系参考サイト

0

Academic Earth.

http://academicearth.org/

アメリカの著名大学の講義を見られる。

$1000程度で学士を取れるサービスも提供されている。

Khan Academy

http://www.khanacademy.org/

Salman Khanさんが1600本以上の授業をblack boardと音声解説で提供している。

ライセンスはCreative Commons。

こんな良質なコンテンツが無料で提供される状態なので、基礎教育は超ローコストに提供できるようになりそう。

プログラミン

0

文字入力がカタカナしかなくてかわいい。

10分ぐらいで作ってみた↓


トップへ戻る