眠る開発屋blog ある開発屋の雑感。日々勉強。

2009/1/17 土曜日

PHPプログラミングのための良い習慣とか

Filed under: 技術メモ — タグ: , — dev0000 @ 1:32:49

PHP プログラミングのための 5 つの良い習慣を身につける

とりあえず紹介されていた5つ。

1. 適切な名前を使う
2. 小さく分割する
3. コードをドキュメント化する
4. エラー条件を処理する
5. 決してコピー・アンド・ペーストをしない

小さく分けるはあまりしてない。。。
UnitTestとか考えるt、小さくメソッドを分けた方が、影響範囲の少ないテストを出来てよいのだろうけど、1フローしかないのにそれを細かく分けるのはどうも性格に合わない。
というか、
ソースを後から理解する際に、あちこちに視点を飛ばす必要があるので、見にくい。

それから、3のコメントにしても殆どいれてない。
ってか、「読めば分かるだろう」ぐらいにしか思ってないからかな。
使うのを止めようと思ったメソッドに「@deprecated(非推奨)」を入れるぐらいはやるかもしれない。

PHP で作成する 30 種類のゲーム・スクリプトとか

Filed under: 技術メモ — タグ: , — dev0000 @ 1:21:42

IBMのdeveloperWorksに「PHP で作成する 30 種類のゲーム・スクリプト」という企画があった。

第 1 回 基本的な 10 種類のスクリプトを作成する
第 2 回 10 種類の中級スクリプトを作成する
第 3 回 10 種類の高度なスクリプトを作成する

こういうの割と好き。

2008/12/21 日曜日

100万円になるまで足しこむとか

Filed under: 技術メモ — タグ: , — dev0000 @ 21:53:57

ふと目についたので。
プレゼントの抽選をするプログラムをrubyで書いてみた。

えと、応募する人はカラメルから、GMOとくとくポイントで買える、何でも好きな商品を選んでもらえば、当選で、その分のポイントをプレゼントするというものなので、総額100万円になるまで抽選した応募情報を足しこんでいくプログラム。

Ruby はよく分からないんだけど、とりあえず条件を達成(max > 1000000)した時点でループを抜けるようにしてもいいんじゃないかな、とか。

あと、自分だったらという話だけど、
ファイルに書き込む必要はなくて、標準出力の内容を適当なファイルにリダイレクトさせるかも。

[php]
1000000) {
break;
}
echo $row . “\n”;
}[/php]

件数が少なければ Excel でやってしまうかも。
ランダムな並べ替え-RAND関数
SUM は選択したセルの集計値が右下のステータスバーに出てくるので、
適当な行まで選べばいいし。

2008/12/18 木曜日

Complement Naive Bayesとか

Filed under: 技術メモ — タグ: — dev0000 @ 13:25:03

新はてなブックマークでも使われてるComplement Naive Bayesを解説するよ

Complementというのは補集合の事で、「ある集合に含まれない要素の集まり」という意味である。

なるほど。今度もっと調べる。

2008/12/9 火曜日

基本要素は単純とか

Filed under: IT世間話 — タグ: — dev0000 @ 0:18:24

プログラムの簡単さと難しさ

単純な要素で複雑なことを表現できる喜びというか、
RGBの光の三原色で様々な色を表現できると知ったとき、「これすげー!」と興奮するか否かとか。

2008/11/30 日曜日

imagegrabwindowとか

Filed under: 技術メモ — タグ: , — dev0000 @ 1:56:09

Windows限定なのですが、PHP5.2.2以降でこういう関数が使えるらしい。

画面全体をキャプチャする。
imagegrabscreen

ウインドウをキャプチャする。
imagegrabwindow

IEのキャプチャのコードが載ってました。
試してないけど、コード自体は簡単そう。

[php]
HWND;
$browser->Visible = true;
$browser->Navigate(“http://www.libgd.org”);

/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, “iesnap.png”);
imagedestroy($im);
?>[/php]

で、ブラウザをフルスクリーンにするには、

$browser->Fullscreen = true;

だとか。
便利そうだね。

gmp_factとか

Filed under: 技術メモ — タグ: , — dev0000 @ 1:49:06

PHPで階乗を計算する関数。
gmp_fact

[php]
知らなかった。

2008/11/28 金曜日

http_build_queryと配列とか

Filed under: 技術メモ — タグ: , — dev0000 @ 0:58:54

http_build_queryとかの続きっぽいこと。

マニュアルにも書いてあるのですが、http_build_query って配列とかもクエリ文字列に変換できたりする。

[php]
array(1,2,3),
‘c’ => array(
‘d’ => ‘e’,
array(
‘f’ => 1,
)
),
);

// 0=a&b[0]=1&b[1]=2&b[2]=3&c[d]=e&c[0][f]=1
// と表示されます
echo urldecode(http_build_query($tmp)) . “\n”;
[/php]

便利そうだね。

2008/11/18 火曜日

スプライン補間法とか

Filed under: 技術メモ — タグ: , — dev0000 @ 16:42:20

自分用メモ。

ラグランジュの補間法だと、たまに極端な山とかができてしまうので、スプラインにしてみる。

参考にしたのはここ。
補間法(スプライン)

ソースはこんな感じ。今度は線の描画付き。
[php]= 1; $i–) {
$r[$i] = $u[$i] – $g[$i] * $r[$i+1];
}

for ($i=0;$i<$n;$i++) { $q[$i] = (double) ($yy[$i+1] – $yy[$i]) / $h[$i] – $h[$i] * ($r[$i+1] + 2.0 * $r[$i]) / 3.0; $s[$i] = (double) ($r[$i+1] – $r[$i]) / (3.0 * $h[$i]); } return; } function spline($x) { global $xx, $yy, $q, $r, $s; $n = count($xx) – 1; $m = -1; for ($i=1;$i<$n && $m < 0;$i++) { if ($x < $xx[$i]) { $m = $i – 1; } } if ($m < 0) { $m = $n – 1; } $x2 = $x – $xx[$m]; $res = $yy[$m] + $x2 * ($q[$m] + $x2 * ($r[$m] + $s[$m] * $x2)); return $res; }[/php]

ラグランジュの補間法とか

Filed under: 技術メモ — タグ: , — dev0000 @ 14:40:53

自分用メモ。

ラグランジュの補間法ってのを使えば、与えられた点を通る波線を作れるらしい。
このへんを参考に。
数式をプログラムで表現しよう

[php]

« Newer PostsOlder Posts »

Powered by WordPress