2008年10月12日

集合知プログラミング その2

なんだかんだで全く読んでいなかった集合知プログラミング
EEEPCかったので、何となく続きを読み始めた。

せっかく買ったEEEPC使ってみたいので
取りあえず例のごとくコードをPHP西ながら読んでいるのですが。
EEEPCで本気で開発はあれだけど、遊び&ちょっと試すぐらいなら十分な感じ。

で本の方だが元々多少の誤差はあったんだが
18−19Pの例で明らかにおかしい結果になった。

例題で言えば-0.179とでるところが0となる。
誤差というには大きすぎるので、ソースを何度も見直すが
原因が分からない。
明示的に型キャストしても変わらないし・・・

Googleさんに問い合わせて
トライアウト ラボラトリ!さんのところでPHPのコードを載せておられるのを発見
私のコードと置き換えて動かして見るが直らない。
http://tryout-lab.com/category/%e9%9b%86%e5%90%88%e7%9f%a5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0


で、ふと元データが悪いんじゃないか?と思い立ち最初のハッシュ部分を見てみると。
入力ミスがあるww
元データの値が1も違っていた。
それは誤差がでるな。

というわけで私が書いたコードは以下のような感じ。

続きを読む
posted by Belial at 23:51 | Comment(7) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2008年06月21日

アジャイルって響きがいい

開発手法もいろいろあるけど。
最近はアジャイルってよく聞きます。
まぁアジャイルの中でもいろいろあるようですが。


私の場合自社ASPの機能追加なんかがメインなのですが、要求がどんどん増えたり変わったりするので、アジャイル的な開発とか有効だと思うんです。

要求定義→軽い仕様書→作成→レビュー→修正
な手順の繰り返しを1週間ぐらいのペースでやればいい感じだと思う。

な訳だが、当然一番下っ端の私が上の開発方針に口を出せるわけはない。

でも一番つらいのは、開発に対する権限が非技術系の上司が強すぎるところだよな。
最近は仕様書は非技術系のその上司が読んで理解できるレベルで書けとか無茶を言っている。
しかも仕様書とかなしで、本当に実装すべき機能のみ定義して開発してもぎりぎりの日数の見積もりに対して、時間取り過ぎと思ってるし。

なんかソフトウェア開発って開発する側と、依頼する側で意識に差があるよね


posted by Belial at 18:42 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2008年05月29日

[PHP]暗号化と復号化どちらが早いのだろうか

ログインIDとPASSを可逆的に暗号化しているのですが。

入力されたIDと比較するときに。
入力されたIDを暗号化するのと、暗号化されたIDを複合化して比較するのではどちらが早いのかと気になったので、かなり適当に比較


<?php

//平文
$data = "平文適当にAbcdefg0123";

//暗号化の場合

$start_time = time();
for($i=0;$i<=200000;$i++){
$encData = my_encrypt($data);
}
$end_time = time();
$time = $end_time - $start_time;
print "encrypt - {$time}秒\n";

//復号の場合
$start_time = time();
for($i=0;$i<=200000;$i++){
$decData = my_decrypt($encData);
}
$end_time = time();
$time = $end_time - $start_time;
print "decrypt - {$time}秒\n";
print "平文:".$data."\n";
print "復号分:" . $decData . "\n";

?>


3回ほど実行した結果がこれ


encrypt - 22秒
decrypt - 23秒
平文:平文適当にAbcdefg0123
復号分:平文適当にAbcdefg0123

encrypt - 22秒
decrypt - 24秒
平文:平文適当にAbcdefg0123
復号分:平文適当にAbcdefg0123


encrypt - 18秒
decrypt - 23秒
平文:平文適当にAbcdefg0123
復号分:平文適当にAbcdefg0123



暗号化した方がはやそう?
でもどんどん暗号化が早くなってるのキャッシュされてるのか?

まぁそれほど真剣に比べる気もないので今日はここまで。
posted by Belial at 13:05 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2008年05月23日

[PHP]PEAR::Crypt_Blowfishで可逆暗号化

久しぶりの投稿です。
最近ネタはあっても書き込むのがめんどくさいw


久々のネタは暗号化
やっぱり、パスワードとかは暗号化したいもの。
いつもは不可逆な暗号化で暗号化済みのものと比べてますが、
今日は暗号化済みのものから復号化の必要がありました。

まぁそんな本気の暗号化は必要ないのですが、最近PEARに興味が出てきたのでCrypt_Blowfishを使ってみることに。

ネットを見ながら適当にインストールして、サンプルを実行してみる。


<?php
require_once 'Crypt/Blowfish.php';
// 暗号化キー
$key = 'hoge';

//暗号化するデータ

$data = "ぱすわーどとか";
// 暗号化処理
$blowfish = new Crypt_Blowfish($key);
$enc = $blowfish->encrypt($data);

//復号化
$dec = $blowfish->decrypt($enc);


print $dec;//ぱすわーどとか が表示される、はず。

?>



が、復号化が正しく出来ない。
何度か文字列を変えて試したがだめだ。
一応複合化は出来ているんだが、復号化された文字列に暗号化前のデータ以外のバイナリがくっついてる。

「123」を暗号化-復号化すると「123***」となる(*のところは何かのバイナリデータ)

困った
困ったときのGoogle先生にたずねてみる。

続きを読む
posted by Belial at 13:49 | Comment(2) | TrackBack(1) | プログラミング | このブログの読者になる | 更新情報をチェックする

2008年02月09日

[PHP]全角カタカナチェック

そういえば以前全角カタカナ判別できねーと記事を書いた


if (preg_match("/[^ァ-ヶ]/",$data)) {
echo "すべてが全角カタカナでわない";
} else {
echo "すべてが全角カタカナである";
}



こんなの。

でもよく考えたらpreg_matchじゃなくてmb_ereg_matchじゃいのかと
ふと思ったw
よし、あとで試そうw
posted by Belial at 10:04 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。