仮説の裏づけ

メール送信に失敗すると、他人のマシンを勝手に操り、代理でメール送信をするなどというキチガイじみた仕様を本当にMicrosoftはやっているのか?

というのを検証する為に、Outlook2007とExchange Server2003でちょっとした実験をしてみた。

まず設定がどうなっているかであるが、
Exchangeの差出人のメールアドレスはmain@xxxxxxx.co.jp
そして、規定になっているLinuxサーバの差出人も同じmain@xxxxxxx.co.jp

このメールアドレスが会社の窓口のアドレスで、皆で共有しているアカウントだ。
Exchangeはメールがお客様に届かない事や、お客様のメールがこちらに届かない事があるので、送受信には使用しない。メールを投げるのは規定のLinuxのサーバに投げるように設定してある。

ウィルスバスター2009のパーソナルファイアウォールで、OutlookのTCPのPort25と465の送信を警告するように設定。

Outlook2007で規定のアカウントから、個人宛noizumi@xxxxxxxx.co.jpにメールを送信する。すると、ウィルスバスター2009で警告が出たので拒否。

普通なら、これで絶対にわしの個人アドレスにメールが届く事はない。
しかし、思った通り、届いたね。

ヘッダを見ると、マシン名が入っていたが勿論、わしのマシン名では無く、他人のマシン。そのマシンのOutlookはそのマシンの所有者に内緒で、裏でわしの送ったメールを代理で送信したのだ。

5回程、送信してみたが、色んなマシンが送信を代わりにやってくれた。
ウィルスバスターでOutlookのTCPの送信を全て拒否にしてたから、UDPか何かで送信しているようだ。

MS-Exchange ServerとOutlookを使うと、他人に成りすまして変なメールの出し放題ができます:-)

さすがはMicrosoft。こんな狂ってるとしか言い様が無い仕様を平気で実装するとは恐れ入る。

Microsoftって給料高いから優秀な人材が集まっているはずだが、恐らく、「どんな有能も無能の下では役に立たない」ってヤツかな。

救いようが無いMS-Exchange ServerとOutlook

会社で、Exchange Small Business Server 2003とOutlook2003、Outlook2007という環境があるのだが、それの腐りっぷりがすごい。

1つのExchange Serverのアカウントを会社の窓口アカウントとして複数人で設定しているが、お客さんのメールが届かなかったり、送信したはずのメールが送信されていなかったりと、極めて信頼性が低い。

その為、フォルダにメールを貯めるだけで、送受信はLinuxのサーバという運用になっている。

そして、お客さん宛のメールが2〜7通同じ文面で送信されるという怪現象があり、 時折、わしのマシンでOutlook2007で設定した差出人名で送信されている事があり、わしの設定がExchangeに移ってるのか?という疑惑があった。

今日、Outlook2007のログを有効にしたところ、わしは送信していないのに、勝手にこっそり裏でメール送信したログが残っていた!? 状況を収集したところ、別部署でメール送信中クラッシュしたそうで、どうやらそのメールがわしのマシンで勝手に送信されたようだ。

この事から類推するに、メール送信失敗をExchangeが関知すると、送信不能を避ける為に、その同じアカウントを共有するマシンで、代替送信をしているのではないかと思われる。

想像だが、その代替送信の仕組みとして、Exchange Serverが「メール送信失敗したヤツがいる!」と騒ぐと、その騒ぎを嗅ぎ付けたクライアントが、我先にと勝手に代理送信し、事後報告するという仕組みである為、同じ文面のメールが何通も相手に届くのではないだろうか? という気がする。

これで、差出人がわしのメールがお客様に送信されている謎の一つが分かった。わしの設定がExchange Server経由で他のメールクライアントに伝播したのでは無く、わしのOutlook2007がExchange Serverの指令を受けて、裏でこっそり他人のメールを送信していたからだ。

そういえば、Exchange Serverに投げるとマズいメールアドレスの形式もクライアントのOutlookが勝手に変更するというのがあった。

恐らく、Exchange Serverの欠陥をOutlookで補おうとした結果、他人が送信失敗したメールを他のマシンで勝手に送信するなどという、腐った実装になっているのだろう。

心底呆れた。こんな実装絶対にありえん!

【買い物】ケロッグ フルーツグラノラ

近所のショッピングセンターで1箱215g298円のヤツを10箱購入。
ちなみに前に買ったネットショップは360gの箱をもう置いておらず、問い合わせたら、「メーカー製造終了」との事だった。

問題は、360gが全て入手不可能になるかどうかだな。
業務用スーパーに置いてある360gの箱は「業務用」と書かれているが、一般小売用と別だったらいいのになあ。

今回買った場所は家から11.2km、往復22.4kmで燃費4km/Lとして5.6Lのガソリンが要るところ。
フルーツグラノラ最安値の業務用スーパーは40kmなので、約半分強の距離だな。

g 単価 グラム単価 燃料代/送料
業務用スーパー 360g 480円 1.33円 1130円(113円×10L)
近所の店 215g 298円 1.38円 633円(113円×5.6L)
Amazon 215g 357円 1.66円 0円(1500円以上)

損益分岐点計算すると、今のガソリン価格では11個以上買えば、Amazonより近所の店の方が安いな。
しかし、20個買ったところで差額は500円程度だから、悩むところだなあ。

リキッド注文

Appleのノンニコチンリキッドが1本無くなったので、BestEcigに555のノンニコチン35ml×5とブランクカートリッジ5×2注文。

旧正月プレゼントで10mlリキッド1本付けて、明日発送すると返事が来た。
しかし、BestEcigは、夜遅くまで働いてるし、反応速いし、旧正月明けたらすぐ発送作業を再開してるし、凄く働き者だ。支那人に対してかなり認識が変わったね。

売ってるものがバッタもんで当たり外れがあるのが難点だが…(^^;

Appleのノンニコチンは、家に帰って吹かしているが、ニコチン摂取量の減少に大いに有効だと分かった。しかし、 吸ってるとなぜかタバコを吸いたい衝動が湧くので、その時は、Camel風味のニコチン入りリキッドを吸う。

これが、タバコ風味のリキッドだったら、かなり紛らわせるのではないかと思って、今回は555のノンニコチンを注文したのだが、果たしてうまく行くかというところ。

ノンニコチンの消費ペースは10ml/1週間なので、175mlなら、17.5週間で約4ヶ月は持つな:-)

混ぜた

電子タバコのリキッドで、もったいないからHiltonをatomizerが壊れないように注意しながら使っていたが、クソ不味いので、Regular Tobbaco少々とCamel少々、バニラオイル少々、ラムエッセンス少々とテキトーに混ぜた。

喉が焼けるような刺激が少なくなり、吸い易くなったが、リキッドの味としてはイマイチで、ノンニコチンのAppleにすら遥かに劣る。

Hiltonのリキッドって、恐らくpepper oilとか刺激物が他のリキッドより多めに入ってる感じがする。そして、atomizerが高温になると、その刺激が最高になるが、これがatomizerにかなり悪そうだ。

しかし、pill box 38のCamelとか、電子タバコの商用リキッドってのは、素人では完全に再現が難しいから、うまく作ってあると思う。

エッセンシャルオイルのタバコアブソリュートを配合すると、結構タバコっぽい風味を再現できるとは思うが、銘柄に似せるのが難しそうだ。

ニコチン無しリキッド

BestEcigから荷物が届いた。

旧正月休み中に頼んだので、リキッド1本サービスってメールに書いてあったけど、555のmidiumが1本Freeってマジックで書いた袋に入ってた。

で、口が寂しい時の為のニコチン無しのリキッドでAppleを頼んであって、試しに使ってみた。こうやってブログ書いてて、プカプカやってるけど、確かにフルーティで美味いのだが、やはり推敲する時に、ニコチン渇望が起こるな。

ニコチン摂取量を減らすには役に立つとは思うが、なんか、ニコチン無しリキッドで禁断症状に耐えられる自信が無くなった orz

BestEcigの24mg/gのリキッド使用状況は
Hilton 2ml位
Regular tobacco 6ml位

Pill Box38のリキッド
Camel 5ml位

7日間のざっくりした使用量はニコチン24mg/g×8ml位、18mg/g×5ml位で約282mg/7日の40.28mg/日。

吸収率8割として、32.22mg。使用量が増えたけど、atomizer保護の為、ドボドボにするようになったから。

atomizerが1週間以内に1本逝くより、リキッド1本の使用可能日数が2〜3日減る方がまだコスト的に安くつく

禁煙

会社で、喫煙場所1箇所が使用禁止となった。誰かが外の喫煙場所に通じる扉の鍵を閉め忘れたらしい。わしは、電子タバコだから、喫煙場所は使っておらず、痛くない。

社長は非喫煙者なので、喫煙者に対して甘いという事は無い。まあ、、防犯上、会社を危険に晒した訳だから、「最低限の当たり前の事ができないなら使うな」というのは、厳しい訳でも無く、至極当然だな。

わしのは、電子タバコと言えど、ニコチン含有リキッドなので、煙が無いだけで紙巻タバコと全く同じ仕組みでニコチンを摂取できる。

電子タバコは、最近、禁煙グッズとして脚光を浴びて来ているが、タバコの依存は、習慣的依存と身体的依存があり、この2つの依存を克服する事が禁煙グッズの目的だ。

習慣的依存ってのは、精神的な不安感から来る依存で、決まった行動パターンや身体への刺激が無いと不安になるという心理的圧迫感がもたらすもの。

身体的依存ってのは、ニコチン摂取欲求や、ニコチン耐性で脳の報酬系への快感がニコチンという物質が無いと起きなくなる事で、ニコチンに依存する事。

ニコチン含有リキッドの電子タバコは、習慣的依存の置き換えには非常に効果的だ。ガムとかパッチとは違い、今まで通りに吸えばいいだけだ。何しろ、ニコチン摂取の原理がタバコと全く同じだから、殆ど違和感無く置換できる。

しかし、葉巻とか、パイプとかの話をWebで読んでいると、ふと、「パイプ吸いたい」等の衝動が一瞬湧きあがる事がある。

これも習慣的依存の恐ろしいところで、パブロフの犬と同様、過去のニコチン摂取時の快楽の状態を脳が記憶していて、パイプで燻らした煙の香りとか、煙等の身体に対する刺激の再現を要求している訳だ。

なので、理論的に、血中ニコチン濃度を上げてやれば、衝動が収まるのは明らかだから、電子タバコでニコチン摂取して、急速に血中ニコチン濃度を上げる事で、すぐに衝動が収っている。

で、問題は身体的依存からの脱却だが、長期喫煙でニコチン耐性ができている者には、ニコチン摂取をやめると、離脱症状で思考力低下、記憶力減退等、脳機能の低下症状が現れ、これは、プログラマならば、致命的。

ニコチンは神経伝達物質の役割を果たし、ニコチン性アセチルコリン受容体に作用して、報酬系への快感になるのだが、ニコチン耐性というのは、ニコチン摂取の継続で、受容体への過剰な作用を抑制する為に調節が働いて、受容体が閉じてしまい、耐性ができあがる。

これで、ニコチン無しでは通常生活が営めない薬物依存の完成で、例えば、思考する為に脳が神経伝達物質を出しても、減少してしまったアセチルコリン受容体では報酬系への作用が不十分で、思考力や記憶力が発揮できないという状態になってしまう。

近年では、米国由来のニコチン置換療法という、タバコからニコチン摂取していたのを、ニコチンガムやパッチ等、別の手段から摂取して置き換え、徐々にニコチン摂取量を減らすという方法が目立つようになってきた。

理論的には、ニコチン摂取量の逓減で、血中ニコチン濃度を徐々に減少させれば、ニコチン耐性で減少したアセチルコリン受容体が復活するはずだが、脳が満足しない状態を継続して、ニコチン摂取量をコントロールするのが非常に難しい。

だから、長いニコチン欠乏状態の苦痛を継続させず、即座にニコチンを断って、離脱症状も我慢しなさいという考え方が従来のものだが、 ニコチン耐性ができあがった人が仕事に支障が出る等の弊害が無ければ、これが最も正しいだろう。

で、「禁煙補助剤(ニコチン離脱のための製品)は悪い冗談か?」なんてのを見つけた。まあ、ニコチン置換療法は楽そうで一番過酷だから、失敗率が高いのは理屈から言ってもそうだろうな。

Progress bar 実装

PHPでファイルアップロード時に進捗を表示するProgress barの実装をやってたりする。

PHP5のAPC(Alternative PHP Cache)で、ファイル送信時の情報取得が使えるようになったのだが、サーバがPHP4のシステムで動いているので、PHP5に置き換えられない。

PHP4とPHP5の同居が必要なのと、Apacheでモジュールを組み込むにしても、mod_phpは4と5を同時に組み込む事ができないので、それぞれを組み込んだApacheを動かす必要がある。

通常動かしているApacheとは別にもう1個別portで動かして、特定のURL以下をreverse proxyで置き換えなんてトリッキーなやり方で動作環境は確保した。

で、Progress barのソースサンプルを入手して実装しようとしたのだが、非常に難解な組み方をしていて、「何かあるな」という感じはしていたのだが、別に気にせず、原理を理解して、Ajaxのprototype.jsを使ってコードを書いた。

しかし、safariでテストした時、全然動かない。
非同期通信で呼ばれるPHPスクリプトのアクセスログが発生せず、Progress barを表示するページで、formにAjax.requestの処理の入った関数が呼ばれているかを吐き出すようにしてみると、ちゃんと呼ばれている。

しかし、Ajax.requestの行だけ、全く無視された状態になっていた。サンプルだと動く。サンプルは、ページ遷移しないか、一部が遷移するようになっていて、非同期通信でAPCの情報を取得しているのは、遷移しない部分…。

ここで、サンプルがなぜ難解な方法で組まれているのか全てを理解した。
APCの情報を取るのに、一部のブラウザではページ遷移が起こる場合、Ajax.requestなどの非同期通信のjavascriptコードが一切動かなくなるのだ。

根本的に構造の見直しが必要で、ほとんど一から作り直し(笑)

まあ、なんとかでっち上げつつあるが、今はIE6で後方互換モードでないと表示しないとかしょうもないブラウザのバグの対処に当たっている。

暫く、SI業から遠ざかっていたから動向を良く知らなかったが、Microsoftは相変わらず、世間に迷惑をかける実装を続けていたのか。実にMicrosoftらしいと感心する事しきり(笑)。

給油

20:30退社だったので、出光のスタンドが閉まってて寄れなかった。
上司は退社する時に「遅くまでお疲れ様」と言ってたが、20:30なんてIT土方基準だと、真昼間でございますよ。

しかし、20時に閉まるスタンドって使えんな…。

20090205.jpg走行距離 196.9km
給油量 69.00L
燃費 2.85km/L
単価 117円/L
総額 8,073円

燃費の最低記録を更新ですよ orz

まあ、これには心当たりがあって、朝の暖気が20分とかやってしまってるからこれが効いてる気がする。本当は10分程度で出るつもりが、急にもよおしたりして、遅くなるんだな。

atomizer死亡3

Hiltonのリキッドだと、連続して壊れているので使うのをやめた。
吸っても余り味がせず、連続吸引でatomizerが過熱し過ぎる点で、使用し続けるのは問題があると思われたからだ。

1日で壊れたatomizerを分解してみると、ニクロム線が断線していた。
そして、その付近には黒焦げの繊維。

そこそこ長く使えてた奴で、今回蒸気が出なくなったatomizerを分解してみると、断線した様子は無く、アルコール洗浄して乾かせば復活した可能性もあるが、生きているatomizerの構造を見るには良いサンプルとなった。

20090131.JPG

右:リキッドドボ漬けで発熱しなくなったatomizer。スチールウールに栗毛色繊維が付いている。

左:ニクロム線断線で、突然死したatomizer。切れてるのが分かるようにニクロム線を引っ張り出した。

栗毛色の繊維がスチールウールから伸びていて、スチールウールに伝わったリキッドがニクロム線の巻かれた繊維にリキッドを伝える役割をしているようだ。

壊れたatomizerはニクロム線の断線と、栗毛色の繊維が炭化していた訳だ。
電子タバコのセットに入っていた一番最初に使ったatomizerは、分解していないが、蒸気の出が悪くなったのは、この栗毛色の繊維が炭化したせいではないかと思われる。

栗毛色の繊維と言えば、現在日本で買えないGreenCig G300のatomizerだが、ポニーテール状に大量に配置したのは、炭化してリキッドの伝達が阻害される欠点を改良した形態だろう。

BE112のatomizerもスチールウールから、リキッドを伝達する耐熱繊維を強化すれば、ショボい蒸気しか出なくなる不具合は改善されると思われるが、ニクロム線断線は如何ともし難い。

まあ、ニクロム線断線もリキッドが少ない状態での連続吸引に起因するところがあるので、リキッド伝達効率の改善が、atomizerを長持ちさせるキーとなりそうだ。

BestEcigの24mg/gのリキッド使用状況は
fule cured tobacco 終了
Mild Seven 終了
555 終了
Hilton 7/10ml位 使用中止
Regular tobacco 9/10ml位
Marlboro 10/10ml

Pill Box38のリキッド残量
Camel 90/100ml位

11日間のざっくりした使用量はニコチン24mg/g×9ml位、18mg/g×5ml位で約306mg/11日の27.8mg/日。

吸収率8割として、22.24mgだから、ニコチン摂取量が実物タバコ並に減ってきたな。

で、再び、BestEcigに555ニコチンmidium(11mg/g)リキッドとappleニコチンnone(0mg/g)のリキッド、atomizer×5を発注。

555はNuttyな感じで結構いい感じ。appleはフクロウおやじさんご推薦で、家で吹かすのに使う予定。