2009/08/02(日)2009-08-02
【オリックス vs 埼玉西武 第18回戦】 (2009年8月2日:京セラドーム大阪) 埼玉西武 0 0 1 0 1 1 0 2 0 0 5 オリックス 0 3 2 0 0 0 0 0 0 1x 6 [勝] 香月 2勝2敗0S [敗] 岩崎 2勝3敗0S [花火] 2回裏 浜中 2号 3ラン (西口) 3回表 石井義 4号 ソロ (小松) 5回表 G.G.佐藤 15号 ソロ (小松) 8回表 中村 33号 2ラン (小松) 10回裏 浜中 3号 ソロ (岩崎)
昨日と同じような展開で8回に追いつきましたが、10回に浜中のホームランでサヨナラ負け。さすがに3試合連続で逆転勝ちさせてくれるほど甘くはなかったようです。
ライオンズ先発の西口は初回はまずまずの立ち上がりでしたが、2回、3回に炎上。最悪の状態は脱していると思うのですが、それでも歯がゆいピッチングが続いています。早く立ち直って欲しいものですが……。
2009/08/02(日)2009-08-02
【オリックス vs 埼玉西武 第17回戦】 (2009年8月1日:京セラドーム大阪) 埼玉西武 0 1 0 0 0 1 0 2 2 6 オリックス 0 3 1 0 0 0 0 0 0 4 [勝] 藤田 1勝0敗0S [S] 小野寺 2勝3敗15S [敗] 加藤 4勝3敗13S [本塁打] 6回表 中村 32号 ソロ (金子)
苦しい展開ではありましたが、終盤にバファローズのリリーフ陣を打ち込んで逆転勝ち。
この日のヒーローは中村。2回、先頭バッターとしてツーベースで出塁し、先制のホームを踏むと、6回には追撃の32号ソロ、8回には同点の2点タイムリーツーベース、さらには9回に決勝の2点タイムリーツーベース。4安打5打点2得点で、チームの6得点全てに絡む活躍でした。
投げるほうでは藤田がライオンズ移籍後初勝利。3年ぶりの白星らしいです。おめでとうございます!
2009/08/02(日)2009-08-02
【オリックス vs 埼玉西武 第16回戦】 (2009年7月31日:スカイマークスタジアム) 埼玉西武 0 0 2 0 0 0 1 1 0 4 オリックス 0 1 0 0 0 1 0 0 0 2 [勝] 帆足 5勝3敗0S [S] 小野寺 2勝3敗14S [敗] 山本 6勝3敗0S [本塁打] 3回表 細川 2号 2ラン (山本) 7回表 後藤 2号 ソロ (山本) 8回表 片岡 8号 ソロ (山本)
1点ビハインドの3回表、細川の2ランで逆転。離脱中の銀仁朗も頑張ってはいましたが、やはり8番にこの人がいると違います。率こそ低いですが、きっちりバントが決められて、ときどき一発もある選手は本当に貴重。
6回表、3連打で同点に追いつかれますが、7回に後藤のホームランで勝ち越し。8回には片岡のホームランで駄目を押しました。つーかホームランばっかりだな。
ライオンズ先発の帆足は、失点した2、6回は連打を食らっていましたが、それ以外はきっちり低めに決まる、持ち味を出し切ったピッチングだったと思います。これで5勝目。
2009/08/02(日)2009-08-02
【東北楽天 vs 埼玉西武 第13回戦】 (2009年7月28日:岩手県営野球場) 埼玉西武 1 0 0 0 0 0 0 0 0 1 東北楽天 0 1 3 0 0 0 0 1 x 5 [勝] 岩隈 7勝5敗0S [敗] 石井一 4勝7敗0S [本塁打] 3回裏 山崎武 21号 3ラン (石井一) 8回裏 山崎武 22号 ソロ (藤田)
後半戦の開幕戦。
初回にライオンズが制球の定まらない岩隈を攻めて1点を先制しますが、その後はゲッツーを繰り返すうちに立ち直られてしまいました。
対するライオンズ先発の石井一はなかなかいい立ち上がりを見せたものの、3回に自らのエラーでピンチを招き、山崎武に一発食らって勝ち越しを許しました。ホームランは仕方がないにしても、溜めたランナーは余計でした。
2009/08/01(土)「IE」に対する最新攻撃の原因、たった1つのタイプミス--MSが認める (CNET Japan)
http://japan.cnet.com/news/sec/story/0,2000056024,20397505,00.htm
昨日の続きです。というか、そもそもCNET Japanの記事のほうが先だったようですが。
ニュース記事自体から得られる情報は昨日と大して変わりませんが、Microsoftのブログへのリンクがあったので辿ってみたところ、面白い記述を見つけました。
I contend that this would be very difficult to spot in a code review, and is not picked up by the C/C++ compiler owing to the (void*) cast. If the cast is removed, the compiler issues an error like this:
C2664: '<function>' : cannot convert parameter 1 from 'BYTE **' to 'BYTE *'
The Security Development Lifecycle : ATL, MS09-035 and the SDL
茶吹いた。void *へのキャストはコンパイルエラーを消すためだけに付けられたものようです。「消す」というよりは「ごまかしてなんとかコンパイルを通す」という感じかな。
おそらく作業者は最初にこう書いたのでしょう。
hr = pStream->Read(&pbArray, (ULONG)cbSize, NULL);
しかし、コンパイルが通りませんでした。そして、コンパイラが見つけた「引数の型が違う」というエラーを消すために、正しい型の引数を持ってくる *1 のではなく、単にコンパイラを黙らせる *2 ことを選んだのですから、これはtypoによるセキュリティホールではありません。もっと別の次元のミスであり、このミスに関しては防ぐことができたはずです。
「プログラムは意図したとおりではなく書いたとおりに動く」という格言がありますが、まさしくそれを実証しているソースコードですね。コンパイルエラーを消すために意図とは全く違うコードになってしまった。
もしこのミスをしたのが新人だったら、噛んで含めるようによく言い聞かせることです。きっと彼(彼女)は二度と同じ間違いはしなくなるでしょう。
もしこのミスをしたのが30歳を超えていたら、すぐに別の仕事を紹介してあげることです。きっと彼(彼女)は「コンパイルが通るコードを書く」ことが仕事だと勘違いしており、これから先も周りの技術者に迷惑をかけ続けることでしょうから。