« 2007年5月 | メイン | 2007年7月 »

2007年6月 アーカイブ

今度のiTunesはDRM FREE

iTunes 7.2
iTunesのアップデート情報をみるとDRM FREE対応。iTunes Storeの規約も更新されてる。DRM FREEかつ128kbpsから256kbpsへビットレートが上がっているらしい。前に購入した曲のアップグレードが可能になっていたけど、それほど不満はないし再購入になるので見送り。

http://drmfree.org/にアクセスするも503 Service Temporarily Unavailable。御愁傷様。
あとiTunes Uがはじまっていた。UはUniversityのU。Opencoursewareな授業をまとめて配信らしい。あとで漁ってみよ。

LinuxWorld Conference & Expo/Tokyo 2007へいってきました

ニート初日ながら雨の振る中、通勤電車に揺られてビッグサイトへ行って来ました。

キーノートに間に合うようにと朝からいったけど、途中で迷って到着したら終盤でした。
AmazonのS3やEC2をエンタープライズで使う話。
スライドに「レモンをお金にかえる法」とか「ロングテール」などのちょっと関連するフォトが毎ページにあり楽しいプレゼンでした。FlickrにあるCCライセンスのものを持ってきたとのこと。講演終了後に声をかけたかったけど、質問者が列をなしていたので、遠慮。 貴重なネクタイ姿を拝見させていただきました。

その後、前職でお世話になった方にご挨拶したり、知った顔をみつけてダベったり、企業ブースを回って、展示されてる商品を作るにはどうすればいいかを考えつつ質問したり(w

仮想化(Xen)やストレージ系サービスが流行っている感じ。逆に企業向けSNSやBlogサービスは勢いが弱まってるんじゃないかって印象でした。
メインページ - VOIP-Info.jp Wiki が楽しかったのでいじってみようと思います。
昼飯を組長と食べて眠くなったので、帰宅。

ビールとタコ焼きで一杯。

re: PHPでメールアドレスかどうか調べる方法

はてブotsuneさんやkazuhookuさんがPHPクオリティについて勘違いしていたので、一言申し上げたところ、参考にされた方がいたようで、もうちょっと補足します。

いくつか実装での「正しいメールアドレス」を調べてみました。

phpspot

function is_mail($text) {
if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) {
return TRUE;
} else {
return FALSE;
}
}



PEAR::Mail_RFC822

    function isValidInetAddress($data, $strict = false)
{
$regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+¥.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|¥'¥¥%¥/0-9a-z^_`{}=?‾:-]+)@(([0-9a-z-]+¥.)+[0-9a-z]{2,})$/i';
if (preg_match($regex, trim($data), $matches)) {
return array($matches[1], $matches[2]);
} else {
return false;
}
}


CakePHP

define('VALID_EMAIL', '/¥¥A(?:^([a-z0-9][a-z0-9_¥¥-¥¥.¥¥+]*)@([a-z0-9][a-z0-9¥¥.¥¥-]{0,63}¥¥.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)¥¥z/i');

Ethna

    function checkMailAddress($mailaddress)
{
if (preg_match('/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i',
$mailaddress)) {
return true;
}
return false;

symfony

  public function execute(&$value, &$error)
{
$strict = $this->getParameterHolder()->get('strict');
if ($strict == true)
{
$re = '/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i';
}
else
{
/* Cal Henderson: http://iamcal.com/publish/articles/php/parsing_email/pdf/
* The long regular expression below is made by the following code
* fragment:
*
* $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
* $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
* $atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c'
* . '\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
* $quoted_pair = '\\x5c\\x00-\\x7f';
* $domain_literal = "\\x5b($dtext|$quoted_pair)*\\x5d";
* $quoted_string = "\\x22($qtext|$quoted_pair)*\\x22";
* $domain_ref = $atom;
* $sub_domain = "($domain_ref|$domain_literal)";
* $word = "($atom|$quoted_string)";
* $domain = "$sub_domain(\\x2e$sub_domain)*";
* $local_part = "$word(\\x2e$word)*";
* $addr_spec = "$local_part\\x40$domain";
*/

$re = '/^([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-'
.'\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c\\x00-'
.'\\x7f)*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-'
.'\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80'
.'-\\xff]|\\x5c\\x00-\\x7f)*\\x22))*\\x40([^\\x00-\\x20\\x22\\x28\\x29'
.'\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^'
.'\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c\\x00-\\x7f)*\\x5d)(\\x2e([^\\x00-'
.'\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-'
.'\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c\\x00-\\x7f)*'
.'\\x5d))*$/'
;
}

if (!preg_match($re, $value))
{
$error = $this->getParameterHolder()->get('email_error');
return false;
}

$checkDomain = $this->getParameterHolder()->get('check_domain');
if ($checkDomain && function_exists('checkdnsrr'))
{
$tokens = explode('@', $value);
if (!checkdnsrr($tokens[1], 'MX') && !checkdnsrr($tokens[1], 'A'))
{
$error = $this->getParameterHolder()->get('email_error');

return false;
}
}

return true;
}

結論。DNS引いてドメインの有効性チェックまでやるsymfonyはヤリ過ぎ。EthnaかPEAR、symfonyのstrictでないものが現実的な線かと思います。CakePHPはpresident@usa.govがNGになる。NGではありませんでした。ごめんよ、ジョージ。君のメールアドレスもラスベガス産のフレームワークは変な書き方だけど受け入れてくれるよ。

株取引はじめました。

どんなもんかと思って株取引を恐る恐るはじめてみました。
株主優待で、東急の全線パスが欲しいな、と思ったのですが、2000万円以上の資金が必要なようです。

ええ、素人です。

用語がさっぱりわからない世界に挑戦するのは久しぶりです。しかも身銭をかけて。ドキドキ。
とりあえずの投資額は勉強代程度です。徐々に勉強してこうと思います。

株トレーダー瞬
株トレーダー瞬
posted with amazlet on 07.06.02
カプコン (2007/06/07)
売り上げランキング: 61
おすすめ度の平均: 5.0
5 カプコンさんだから期待大!
5 株が身近に

旅に出ます

17日まで旅に出ます。

携帯が使えるらしいですが、着信料がかかるらしいので、たぶん、でません。

国際ローミングとは | SoftBank

パリ、ヴェネティア、ローマ、プラハ、ロンドンにいってきました

prague
ユーロが対円相場で最高値を更新する中、パリ、ベネツィア、ローマ、プラハ、ロンドンと行ってきました。
ベタな観光でしたが、楽しかったです。

パリもベネツィアもローマもいい街だったけど、ベストはプラハ。
水よりビールが安い街。ゴーレムを生んだ錬金術の都、ヨーロッパの黄金の街。ピルスナービール発祥の地、アイスホッケーとサッカーの国。木工と人形とアニメーションの国。

またチェコにいって、今度はプラハ以外の街も回ろうと思います。]

欧州格安航空事情

10日間であっちこっちいってきたわけですが、ヨーロッパ、特にEU内では、格安航空便が多く就航しています。
今回の旅行で利用した便は以下の通り。

出発 到着
航空会社
BVA Paris (Beauvais Tille)
TSF Venice (Treviso) RyanAir
TSF Venice CIA Rome (Ciampino) RyanAir
FCO Rome (Fiumicino)
PRG Prague 
SmartWings
PRG Prague 
LTN London (Luton)
ThomsonFly

格安航空は発着料の安いマイナーな空港を利用してます。Parisのボーヴェ空港なんてParisの都心から80キロ離れたところへバスで移動。野原の中にプレハブ一階建てのターミナル。全然、パリじゃありません。例えるなら東京発の飛行機が厚木飛行場からでているイメージ。

料金はうまく予約すれば、税金だけの価格で利用できます。3000円ぐらい。タクシーよりも安く飛行機に乗れます。
予約の手段はインターネットのみで、機内サービスが無く有料機内販売。自由席なこともあります。ちゃんと人数分の席はあるのでご安心を。
預け荷物の重量制限が少し厳しくてRyanAirは15キロまででした。(JAL国際線は20キロ)

国際長距離便にも進出しつつあってNY-Londonが1600円とか、香港-ロンドン間も就航するとか、オーストラリア系の格安航空が日本便を就航するとか。たぶんまた利用します。

もしローマのチャンピーノ空港に着陸する便に乗るなら右側の席に座るとローマ市上空を通過する際にコロッセオやヴァチカンが窓から見れて良いです。

hpの電子計算機を購入

計算機のこだわりのブランドといえば hp かシャープだよね、ってことで、HP 9s 関数電卓 F2212W を購入しました。輸入品なのでマニュアルは英語。使いこなす練習をしばらくやります。












Powered by
Movable Type 4.25