2007年7月29日
FitのEGRバルブを交換
ネット上では結構前から不具合が指摘されていたFitのEGRバルブであるが、発売から約6年経った6月8日にサービスキャンペーンが発表され、昨日やっと交換してきた。
ボクのフィットには顕著な不具合は出ていなかったのだが、適当にネット上の情報のとおり、「40km/hぐらいで定速走行時にガックンガックンなる」と言ってみた。
実際には型番を見て、不具合該当品なら交換という手順らしいので、該当品じゃなかったらどうするのかという不安もあるが、そのときは、「点火プラグの交換をサボってるからそっちかなぁ?」とトボけるつもりだった。
で、結果は交換。
もともと現象が出てなかったので、ディーラーからの帰りぐらいでは、違いは分からん。
ただ、ガクガク感をよく感じたのは浜崎橋JCTからレインボーブリッジに登る坂道で、「舗装波打ちすぎなんじゃないかココ」と思うことがあった。しかし逆方向は渋滞するからデコボコになりそうなものだが、この区間がデコボコになるとは思いにくい。
こんどまた走るときに違いが感じられたらうれしいなと。
サービスキャンペーン発表から交換までに2ヶ月近くかかってしまった。これは第一報のダイレクトメールが転居先不明で届かなかったため。
本田技研は、車検証の住所を元にシールに印刷して、ディーラーに発送する。で、ディーラーは手作業(?)でシールを貼って発送するらしい。
車検証の住所は4年以上前のものなので、転居先不明となってしまった。
ディーラーのコンピュータには移転先が登録されているが、それとの整合チェックは営業マンの頭の片隅に「要チェックフラグ」が立っていないと行われないっぽい。
この辺に手作業が入るのはシステム屋としては気に入らないが、本来は使用者責任で車検証の住所変更をするのが筋ってモノだろう。ボクの怠慢である。
だが、車検証の住所変更なぞ廃車までしないという風潮があるらしく、
「市内での転居でしたら住民票に履歴が出ますから、譲渡とかの時でも住所をつなげるために戸籍謄本がどうのこうのなりませんから、ええ。」
みたいなことを言われた。
そんな風潮の中、システムマチックじゃないのはいかがなものか。
まあ、いいや。
とりあえず営業マンの「要チェックフラグ」を確実に立たせておくため、ボクの存在を覚えてもらうために、「そろそろ新型フィットが出るみたいですけど?」と聞いてみた。
いろいろ話したが、まとめると、
・今年秋は確実。
・通常2ヶ月ぐらい前には「極秘写真」がディーラーに配られるが、それがまだ来てない。
・カタログが配布されるのは発表の前日。
・これだけヒットしたクルマの2代目は難しいんじゃないでしょうかねぇ(w
と、なにも教えてくれなかった。
ちなみにこの営業マン、一家4人でフィットでスキーに行ったりするらしい。それもルーフキャリアなしで、6:4分割の4側を倒して板を積み、2泊3日の荷物を積んで4人乗車らしい。
「もう上の子が高校生になっちゃうんで、もうそれもやらなくなりそうだけど・・・」
と。
しかし、中学生でも6:4分割の6側に2人も座ったら結構ツライと思うぞと。
そんなこんな、時事ネタの「リケンのピストンリング」などを交えて雑談をしたので、次回リコールなどが発生したときはちゃんと手紙が届くかな?
2007年7月27日
ORA-12571: TNS: パケット・ライターに障害が発生しました
某所でOracleを使っていると、たまに表題のエラーが出る。「ORA-12571」でググって見ると、謎の現象で解決しない例が多く見られる。
原因がさまざまであり、対策もさまざまなのだろう。
ここの環境では、一定時間通信しなかったあとでクエリを投げると出るようだ。
これはどうも、DBサーバまでの間にあるファイアウォールがTCPコネクションを切断してしまうため出ているようだ。
ファイアウォールではNATしているので、NATテーブルの飽和を防ぐために、一定時間アイドルだったTCPコネクションをNATテーブルから消してしまう。
また、NATしていなくても、TCPセッションハイジャックなどのリスクから回避するために、SPIでフィルタしてしまっているなんていう環境もあったりするだろう。
ネットワーク環境的な回避方法だと、キャッシュ時間を延ばす方法が考えられるが、むやみやたらと長時間にするわけにもいかない。
そこでクライアント側の設定での回避策。(3階層アプリならWebサーバでの設定)
TNSNAMES.ORA に (ENABLE = BROKEN) を追加する。追加する場所は以下のとおり。
HOGE =
(DESCRIPTION =
(ENABLE = BROKEN)
(ADDRESS_LIST = 〜
それに加えて、レジストリをいじってTCP KeepAlive パケットの送出間隔を短くする。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
KeepAliveTime DWORD:0x493E0
ここで設定する値の単位は ms.
上記の 0x493E0 の場合は 300000msで 300秒で、すなわち5分。これは間にあるファイアウォールのNATテーブルタイムアウト時間より短い値に設定する。
利用者(ファイアウォール配下の端末数)が少なければ、1分とかでも問題ないだろう。それ以下にするのはちと勿体無い感じがする。
ちなみにデフォルト値は2時間だ。長すぎる。
これらの設定を組み合わせることにより、設定した間隔でKeepAliveパケットが流れるので、ファイアウォールがタイムアウトで切断してしまう現象が出なくなる。
さて、例によって定型文。レジストリの書き換えは自己責任で。書き換え後は再起動が必要。
2007年7月26日
イーバンクマネーカードはエンボスレス
イーバンク銀行は当初、全銀に接続しておらず、イーバンクの外界とのやり取りが面倒だった。イーバンク内での資金移動は他人あてでも無料で便利っぽいのだが、なんだか閉じた世界であり、バーチャルな感じが強かった。
しかし、その不便さにやっと気づいたのか、最近はリアルとの接点が増えてきた。最大のターニングポイントが2006年1月の全銀ネット加盟だ。これにより、他行への振込、他行からの振込が可能となった。
さらに、2007年6月から、「イーバンクマネーカード」の発行が始まった。これは、キャッシュカードにVISAデビット機能が付いたもの。
イーバンクのキャッシュカードは、単機能のものだと手数料がかかる。だが、クレカなどとの一体カードは手数料がかからない。
今までもいくつかクレカ提携カードがあったのだが、クレカを増やしたくないので作っていなかった。
だが、「イーバンクマネーカード」についている「VISAデビット」は、クレカのようでクレカでない、不思議な位置づけのカードだ。
昔、クレカは伝票で処理していた。エンボスをカーボン紙でゴリゴリっとやってカード番号を転写して処理する。
今はそんなものを使っている加盟店はほとんど無く、センターと通信して与信管理をしている。
ここで、センターと通信するときに与信じゃなくていきなり口座の引き落としをやってしまうのがVISAデビットだ。
簡単に言うと、カードを使ったら即時、口座の金が減る。口座に金が無ければ、与信エラーと同等(?)になり、支払いが出来ない。
面白そうなので、申し込んでみた。で、昨日届いた。
このカード、エンボスが無い。
そもそもデビットの仕組みだと、カーボン紙でゴリゴリで処理できないわけで、それ用のエンボスが必要ないのは明らかだ。
だが、必要ないと思われる銀行の通常のキャッシュカードにもエンボスは存在し、常々邪魔だと思っていた。
イーバンク銀行のキャッシュカード(イーバンクマネーカード)にはエンボスが無い。
財布の厚みが0.5mmぐらい減るのでうれしい。
エンボスネタのついでに、FeliCaは絶対にエンボスレスだと思っていたのだが、エンボス付きのFeliCaも存在してた。
ボクが見たのは、ビックエコーの会員カード(BIG ECHO/club DAM MEMBERS カード)。Edy付きなのにエンボスがある。
一方、Suica系のカードは必ずエンボスレスのようだ。
もしかして、エンボス付きだと、JR東日本の改札通過試験に合格できないのだろうか?
でもまあ、なんにしてもエンボスは邪魔なので、エンボスレスカードが普及してほしいと切に願う。
2007年7月22日
鷹山からポケベル
鷹山からポケベルが届いた。
なぜ今更ポケベルなのか。
ことの始まりは名刺にFAX番号を書いてみたいと思ったところからだった。
家庭用FAXはあまり好きでない。呼び出し音が何回か鳴った後、FAX機が勝手に着呼して擬似リングバックトーンを送出しつつFAX信号を待つあの仕組みが許せない。
かといってFAX専用回線を引くのも基本料金がかかってイヤだ。
また、FAXの送信はめったにしない。仮に送信することがあったら、スキャナでスキャンしてPCから送れば何とかなる。先日もイーバンクに住所変更の本人確認資料となる運転免許書をスキャンして送ったところだ。
受信さえどうにかできれば・・・。
と思っていたところで発見したのがD-FAXというサービス。
受信したFAXをメールで送ってくれる。自分専用のFAX番号が割り当てられる上に、基本料無料・受信料無料だ。
昔は新規登録手数料さえ無料だったが、最近は2,625円(税込)になった。
なぜ無料でサービスが出来るのか。それは020で始まるポケベル番号を使っているからだ。
020に発信すると発信者が発信側事業者(NTT東西)に料金を払い、そのうちのいくらかが、020の事業者に支払われる。
YOZANボロ儲けかなと思ったが、そうでもなかったらしく、新規登録手数料を取るようになった。
新規登録手数料を取る言い訳として、FAX着信時にポケベルにもお知らせしてくれる機能を標準装備とした。
というわけで、ポケベルが届いたのだ。
はっきり言って、イラネー。文字表示はおろか、数字表示すらなく、ブザーだけの単機能ポケベルなんて。
FAX受信を出先で知る必要がある人間がどれだけいるのだろうか。
電池を入れるだけ無駄だと思う。
が、一度くらいは着信してみたい気分でもあったりして。
ただこれ、説明書がA3両面コピーが1枚だけ。待ち受け可能時間が書いてない。着信してブザーが鳴り、止めなかったときにどのくらいで鳴り止むのかも書いてない。
うっかり電池を入れて、不在時にうっかりFAX受信して、ブザーが鳴りっぱなしに鳴ったらイヤだな。
一度自分で試して見ればいいのだが、そのために発信すると発信者(自分)に課金されてちょっとヤダ。
2007年7月14日
首相の車列で玉突き事故
http://headlines.yahoo.co.jp/videonews/fnn/20070714/20070714-00000305-fnn-soci.html
ナンバー丸見えだが大丈夫か?
品川35 の 38-00
って、東京の車かよ! 高速道路で大阪に行ったのか??
それとも、首相だけ飛行機か新幹線で移動して、車だけは関係者が運ぶのか。
それと、2桁ナンバーが懐かしい。
2007年7月12日
渋谷で5時
渋谷に用事があったのでシエスパに野次馬してきた。
立地としては、繁華街と高級住宅街の間といった感じ。
しかし、古くからあって高級じゃない建物も多い。
爆風の影響を受けた建物の修繕をしているのか、作業服が多い。
温泉本体の方は民間警備員が鋭意警備中。
裏には警視庁さんもいらした。
2007年7月 7日
SQLインジェクション対策
今更だが、SQLインジェクション対策の話。
対策方法はただひとつ。SQL文を生成(文字列連結)するときに入力文字列をエスケープすること。
SQL文を生成した後でエスケープしようとしても、そこにある文字がエスケープすべき文字なのかどうかは判別不可能だ。また、SQLインジェクションが発生しているかどうかを検知するのも不可能だ。構文エラーになっていたら検知できるが、それは仮に実行してしまってもエラー終了するだけで大きな副作用は発生しない。また、実行できるSQL文になっていたら、それがSQLインジェクションなのかどうかは機械的には分からない。
「マルチステートメントなら実行できない」といった程度の対策なら可能だ。しかし、SQLインジェクションが成立するにはマルチステートメントが必須なわけではないので、それで対策完了というわけには行かない。
で、連結時にエスケープしようと思うのだが、これも結構厄介だ。調べれば調べるほど、危険な文字の存在に気づかされる。UTF-8などのわけわからない空間から攻撃されると困ってしまう。
そこで、普通は prepared statement (プリペアドステートメント:準備された文) あるいは parameterized query (パラメタライズドクエリ)を用いる。
これなら、何をブチ込んでもそれなりに解釈されて、そのままDBのフィールドにブチ込んでくれる。
もちろん、' (シングルクオーテーション)などもそのまま格納可能だ。
大量の音楽に対して 「80's J-POP」みたいなカテゴリをつけたいときなどには非常に重宝する。
それでも例外がひとつあり、LIKE句の時だけは % と _ を変換しなければならない。