2009/10/30
2009/10/29
久々の架空請求
先ほど携帯電話のメイルアドレスに届いたメイル
そもそも docomo の携帯アドレスから届く時点で信憑性は皆無。
From: p.s.l.XX@docomo.ne.jp
Subject: 無題
(株)パーソナル
担当の尾田
と申します。
今回《有料サイト》様で発生しています料金の件でご連絡差し上げました。
弊社調査会社になりましてお客様のお使いの携帯端末に対し【身辺調査】の依頼を承りました。
誠に遺憾ではございますが、明日までにご連絡なき場合は
法的書類を準備作成の上、即刻法的手続の開始の手続きに入らせて頂きます。
※メールでのお問い合わせは一切受け付けておりません。
未払い金のお支払いの手続きや退会処理の手続きをご希望の方は 、
(株)パーソナル
03-3837-67XX
担当 尾田
までお願いいたします。
営業時間 [平日]
午前10:00〜午後19:00
(日・祝日を除く)
文面はほんのちょっとだけ進歩のあとが見られるが、
まだまだ小学校高学年程度の日本語。
「弊社調査会社になりまして」とか意味が通じてないし、
一生懸命背伸びして「遺憾」なんて言葉を使おうとしている努力は認めるが、
「誠に遺憾ではございますが、明日までに…」という文脈だと
何に対して「遺憾」なのか不明瞭になってしまう。
もしかして色々な意味で日本語の不自由な方々が文章を作成しているのか?
ためしに電話番号で検索してみた所、すでに詐欺メイルとして晒されていた。
今回もちゃんと社会参加しました。
2009/10/26
2009/10/23
Snow Leopard On VAIO type P
VAIO type P で Snow Leopard が動作するという夢を見た。
VAIO type P に USB メモリーを挿入して F11 を押しながら電源を入れると、
Snow Leopard が起動した夢を見た。
type P の Bluetooth や無線 LAN が使えるのは勿論、
Fn + F2/F3/F4 による音量調整や Fn + F5/F6 による輝度調整も出来ている。
夢の中では
- Chameleon-2.0-RC3-r658-bin.tar.gz
- vaiop20091014us.tar.bz2
- Kext Helper b7
とても素敵な夢だったので検索してみると、 どうやら同じ夢を見ている人が結構いるようで嬉しい限りだ。
あくまでも昨夜見た夢のお話です
夢の中での作業だったので詳しくは覚えていませんので、
問い合わせされてもちゃんとお答えできないでしょう。
2009/10/18
2009/10/17
2009/10/16
php からのディスクアクセス
php だという時点で既にアレなんだが…php からディレクトリにある全ファイルの一覧を取得する処理のパフォーマンスを exec()、popen()、opendir() を利用した処理で比較してみる。
方法は単純にテスト用のディレクトリに 500 ファイルを用意して、 それぞれの関数を使用してファイル名一覧を取得する処理を 10 回実行した場合の処理速度を計測する。
exec("ls -1") | 0.774762 |
popen("ls -1") | 0.865914 |
opendir() | 0.136642 |
外部 shell を実行しないので opendir() が早いだろうとは予想していたが、
これほど差が出るとは思わなかった。
パフォーマンスを優先する場合は勿論だが、
余計なプロセスを生成しないので opendir() が地球に優しい様だ。
1<? 2 3 $func = array("byexec", "bypopen", "byopendir"); 4 5 for($i=0; $i<3; $i++){ 6 $dist = array(); 7 $start[$i] = gett(); 8 for($j=0; $j<100; $j++) 9 $dist[$j] = $func[$i]("/tmp/test"); 10 $end[$i] = gett(); 11 12 printf("%-10s:%f\n", $func[$i], $end[$i] - $start[$i]); 13 } 14 15 function byexec($dir) 16 { 17 18 exec("ls -1 $dir", $output); 19 20 return($output); 21 22 } 23 24 function bypopen($dir) 25 { 26 27 if(($fp = popen("ls -1 $dir", "r"))){ 28 while($buf = fgets($fp)) 29 $output[] = trim($buf); 30 pclose($fp); 31 32 } 33 34 return($output); 35 36 } 37 38 function byopendir($dir) 39 { 40 41 if($dir = dir($dir)){ 42 while($file = $dir->read()) 43 $outout[] = trim($file); 44 $dir->close(); 45 } 46 47 } 48 49 function gett() 50 { 51 52 $t = gettimeofday(); 53 return((float)($t['sec'] + $t['usec'] / 1000000.0)); 54 55 } 56 57?>
ついでにシェルの glob なパターン指定を利用して 指定した文字列にマッチするファイル名の一覧取得を行う場合のテストもしてみた。
20090219000 から 20090219499 までの500個のファイルの中から、 200902192?? にマッチするファイル名の一覧取得で時間を計測してみる。
exec("ls -1 200902192??") | 0.883770 |
popen("ls -1 200902192??") | 0.902392 |
opendir()→preg_match("/200902192../") | 0.188792 |
glob("/200902192../") | 0.203928 |
exec()、popen() が遅いのは相変わらずだが、
preg_match()の呼出しが意外に早かったのが驚き。
正規表現のマッチ処理って基本的に相当時間がかかる筈なんだが…
glob() はファイルシステムに自分でアクセスしてる様なので早い。
複雑なパターン指定が必要ならpreg_match()の方が柔軟だが、
シェルに渡せる程度のパターン指定なら glob() を利用するのが
可読性やメンテナンス性と性能が両立できて良いのかも?
2009/10/15
2009/10/14
Instant Mode の Firefox
Instant Mode で起動される Firefox は何故か無意味に機能制限されおり、
非常に使い勝手が悪いのでフル機能の Firefox に入れ換える。
作業は linux 用の firefox-3.0.8 バイナリを取得して展開し、
アーカイブ中に含まれる firefox/firefox スクリプト中の
"moz_libdir" の定義を "/usr/lib/firefox-3.0.8"
から "/usr/local/lib/firefox-3.0.8"
に変更するだけである。
ここではデュアルブートの ubuntu linux を起動して作業しているので、
Windows パーティションは "/media/Windows" にマウントされているが、
例えば Windows 上から参照できる "C:\InstantON\browser" ファイルを
稼働中の Linux 環境にコピーして作業する等、
それ以外の環境で作業する事も勿論可能である。
なお、デバイス名称やディレクトリ名は環境により異なる可能性があり、
マウントポイントはあらかじめ準備する必要があるので、
適宜自分の環境に合わせてコマンドを実行する必要がある。
デバイス名称やディレクトリ名、マウントポイントなどの言葉の意味が
判らない場合は実行しない方が良いと思う。
# mount -o loop /media/Windows/InstantON/browser /opt/browser # wget -q -O - "http://download.mozilla.org/?product=firefox-3.0.8&os=linux&lang=en-US" | tar -C /opt/browser -jxf - # cat << EOF | ex -s /opt/browser/firefox/firefox > /^moz_libdir=/ s!=.*!=/usr/local/lib/firefox-3.0.8! > w! > EOF # umount /opt/browser
これで Instant Mode を起動するとフル機能の Firefox が利用可能となり、 普段利用している様々なアドオンなどが動作する。