雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|

2003-06-01

お仕事

当たり前だが自分がやらないと何も進まない.こまごまとした物を片付けていたら,週末が終わってしまった.それでも,TODOリストはまだまだ長い.

救いはやってて楽しいことだろうか.たのしんどいってのは誰の言葉だったか.まさにそんな感じ.

Rubyの勉強はまったく進んでません(^^;


2007-06-01

[F1] 矛盾するマクラーレン

陰謀論者モード発動。眉に唾して読んでね。

さて、モナコGPでマクラーレンチームが取った作戦とオーダーが物議をかもしている。FIAの調査の結果、マクラーレンにはお咎めなしとの決定が下ったようだが、その調査報告の中に、マクラーレンの矛盾を浮き彫りにする重要な記載が含まれている。順を追って説明しよう。

まず、マクラーレンにかけられた嫌疑は、大まかに以下の3点となる。

  • 予選のQ3でハミルトンがアロンソよりも重い燃料を積んだのは、アロンソにポールポジションを取らせるための作戦ではないのか。
  • ハミルトンの給油のタイミングを早めたのは、ピットストップでの逆転を防ぐための作戦ではないか。
  • 2回目のピットストップ後、アロンソに迫ったハミルトンに対して出されたスローダウンの指示は、いわゆるチームオーダではないのか。

これに対してFIAが調査を行った結果、発表したリリースは以下のようなもの。(F1-Live.comより

【事実関係の確認】
  1. モナコGPでは2ストップ作戦が最善の選択だが、セーフティカーが出動した場合は1ストップ作戦の方が有利な結果を導く場合がある。
  2. 事実、過去5年のモナコGPのレース中、4回セーフティカーが出動しており、セーフティカー出動の可能性を考慮するのは当然のことであろう。
  3. 現行のレギュレーションでは、予選Q3までに1ストップ作戦や2ストップ作戦を選択する必要がある。
  4. FIAの調査結果により、予選後のハミルトンの燃料搭載量はアロンソよりも5周分多かったことが明らかになっている。
  5. つまり、ハミルトンの第1スティントでセーフティカーが出動した場合、彼は1ストップ作戦を実行することが可能になるということである。
  6. しかし、レースではセーフティカーは導入されなかった。
  7. また、モナコGPでのマクラーレンは、どのチームのマシンよりも明らかにスピードがあった。
【背景】

どのチームもどちらかのドライバーをレースに勝たせることを優先する。そしてそれが成功した場合、そのチームはもう1人のドライバーを2位でフィニッシュさせるように努力する。

アロンソの第1スティントの間にセーフティカーが出動しなくても、アロンソがピットストップに入ってからハミルトンがピットストップに入るまでの5周の間にセーフティカーが導入することが考えられた。つまり、アロンソはほかの1ストップのマシンすべての後方にとどまる可能性があり、彼にとっては極めて不利な状況になってしまう。1ストップ作戦を選択したマシン勢は40周目付近にピットストップすることが予想されていた。

同じような理由のためにハミルトンは2回目のピットストップを早めに消化することになった。それにより、セーフティカーが導入されてもされなくても2位の座を確保することが可能になった。

もしハミルトンの前を走るマシンが彼のチームメート(アロンソ)でなかった場合、マクラーレンはセーフティカーが出る可能性を考慮し、ハミルトンの燃料搭載量が許す限り彼を走らせ、ピットストップまでにリードを保つことができるようにしていたであろう。しかしハミルトンの前を走っていたのはチームメートのアロンソであり、同じチームのマシンをリスクを冒してまでオーバーテイクする必要はない。むしろ、この状況下でオーバーテイクを試みるのはまったくもって愚かな判断だと考えられる。

また、自らのドライバーがかなりのリードを持って走っている場合、チームがドライバーにペースダウンするようにと指示を出すのは標準的な作戦である。これは技術的なトラブルやほかの問題のリスクを低減するためにも適切な判断だ。また、同じチームのドライバーが接近して走っている場合、リスクを冒してドライブすることを許さないという姿勢もまたレースを戦う上では標準的なことである。

マクラーレンが最適な戦略を選択してレースを戦うことができたのは、彼らのマシンがほかのチームのマシンと比べて明らかに競争力があったからにほかならない。以上の事実確認により、彼らはレース結果の操作するような行動を何ひとつとっていなかったと結論付けることができる。

このリリースから、マクラーレンがFIAに対して行った説明は、以下のようなものであると考えられる。

  • 予選でハミルトンに多くの燃料を積んだのは、もし第1スティントでセーフティーカーが導入された場合に1ストップに切り替えるというアロンソとは別の作戦を取ることにより、チームとしての優勝の可能性を高めるためである。
  • ハミルトンの2回目の給油のタイミングを早めたのは、ピットストップ前にセーフティーカーが入ることにより、ハミルトンが順位を落とすことを防ぐためである。
  • 2回目のピットストップ後のペースダウンの指示は、種々のリスクを回避するための当然の判断である。

これは一見すべての嫌疑を晴らす釈明に見えるが、賢明な読者ならすぐに分かるように、1回目のピットストップのタイミングについて、実に巧妙にはぐらかされている。この点について、レース決勝後のインタビューには次のようなやり取りがある。(同じくF1-Live.comより)

Q:1回目のピットストップはわれわれが予想していたより3周ほど早く入ったのですが、実際どうだったのですか?
ハミルトン:ああ、僕はフェルナンドから5、6周ほど遅くピットに入れる分燃料を積んでいたはずだったのに、ピットからはフェルナンドの3周後にピットインしろって言われたから驚いたよ。だからギャップを築くことができなくなってしまったんだ。不運だったけどしょうがない。

このやりとりからは、ハミルトンはむしろ1回目のピットストップのタイミングに対して不満をもっていた様子が伺える。いっぽう、2回目のピットストップについては、調査結果にも報告されている通り、「それらしい言い訳」が用意され、それがハミルトンにも伝えられていたことは、同じくレース後のインタビューの次のやり取りから分かる。

Q:ルイス、あなたは3周ほど早く1回目のピットストップに向かい、予想していたよりも1.5秒長く止まっていました。われわれは2回目のピットストップはさらに5周ほど伸ばせると思っていたのですが・・・。トラブルがあったのですか? それとも早く入るようにという指示が出たのでしょうか?
ハミルトン:わからないよ。エンジニアに聞いてみなきゃね。でもセーフティカーが入ってくることを考慮して早くピットに入ったことは確かだよ。セーフティカーが入ると順位が目まぐるしく変わり、違う結果になってしまうかもしれないから、早くピットストップを済ませたんだ。1回目のピットストップ時には、フェリペが先にピットに入っており、僕がピットに入っても抜かされる心配がなくなったから早めに入ったのさ。第2スティントは短くなるかと思っていたけどそうはならなかったね。

では、このはぐらかされた1回目のピットストップにはどういう意味があったのか。じつはそこにこそマクラーレンの「作戦」の最大の矛盾点がある。キーワードは「セフティーカー」だ。

モナコGPにおけるマクラーレンの作戦は、もしセフティーカーが入っていたとしたら、勝機はハミルトンにあったはずだ、ということで一貫しているかのように見える。実際、ロン・デニスも「もしレースでセーフティカーが導入されて彼(ハミルトン)が勝利をつかんでいたとしたら、当然のごとく彼は落ち込むこともないし、不満な態度を示すはずもないだろう」と語っている。ところが、1回目のピットストップのタイミングだけは、なぜかこの「作戦」に完全に背くものになっているのだ。分からない?じゃあ説明しよう。

ハミルトンの作戦は、『もし第1スティント中にセフティーカーが入ったら1ストップに切り替える』というものであった。はずだ。つまり、セフティーカーが入らないうちに1回目のピットストップを行った時点で2ストップ作戦が確定してしまい、ハミルトンの優勝の可能性は遠のく。しかも、アロンソ、ハミルトン両者の2回ストップが確定した場合、セフティーカーの入るタイミング次第では共倒れという可能性すら出てくる。つまり、セフティーカーが入ることを想定した場合、ハミルトンは燃料切れぎりぎりまで第1スティントを延ばす。というのが本来の「作戦」であったはずなのだ。にもかかわらず、ハミルトンに「驚いた」と言わせしめた謎のピットストップは敢行されてしまった。

マクラーレンチームはハミルトンに対し、「第1スティント中にセフティーカーが入ったら1ストップに切り替えて優勝を狙う」作戦と称して予選Q3では多めの燃料を搭載し、レース中の第2スティントでは「今セフティーカーが入ると順位が落ちるぞ」と言って早めのピットストップを敢行した。なのに、1回目のピットストップの時だけは、セフティーカーのことなどすっかり忘れ、共倒れのリスクも省みずにさっさとピットインさせているのだ。

セフティーカーにまつわる話は以上だが、アロンソ・ハミルトンのピットストップのタイミングと、その前後の両者のラップタイムの関係もなかなか興味深い。

各ピットストップ前後の両者のラップタイムの推移は次のようになっている。

1回目2回目
LAPアロンソハミルトン
251'16"7581'15"758
261'33"5061'16"316
271'18"5361'16"263
281'15"4621'15"372
291'15"8431'34"078
301'16"0431'17"958
311'16"3301'15"758
321'16"1401'15"914
331'16"3941'16"033
LAPアロンソハミルトン
501'15"8691'16"789
511'34"0581'15"980
521'20"7571'15"904
531'17"0491'31"787
541'17"6221'19"010
551'17"2261'16"465

背景が黄色のLAPがそれぞれのピットイン周回。両者ともタイヤはソフト→ソフト→スーパーソフトという選択。これを見て分かるのは、今回のブリジストンのソフトタイヤには、かつての予選用タイヤのような「最初のおいしい周回」が存在したということだ。実際、両者ともアウトラップ後の2週だけ1分15秒台を記録し、その後タイムが16秒台に落ちている。さて、この表から一目瞭然ではあるが、ハミルトンの1回目のピットインのタイミングは、アロンソの「おいしい周回」が終わる週と見事に一致している。しかも、ハミルトンのピットイン直前の28週目のタイムは彼のモナコGPにおける自己ベストだ。ここでもし彼があと2,3週、15秒台前半のタイムをマークし続け、アロンソが16秒台だったら…。

次に2回目のピットストップを見てみよう。スーパーソフトタイヤにはいわゆる「おいしい周回」が無いことが両者のタイムからも分かるが、さらに両者のタイムとラップの関係を見ると、ここでもアロンソが得をしているように見える。15秒台で走れたハミルトンと17秒を切れないアロンソ。だが、そのような関係は1週も許されなかった。しかもこの値、単純にアロンソのペースが上がらなかったと見ることもできる一方、さらに穿った見方をすると、アロンソがプッシュしなくても良いことを知っていたかのような印象すら受ける。

ロン・デニスは「チームメート同士でバトルをし、それによってガードレールに突っ込むようなことが起これば“マクラーレンのボスはいったい何を考えているんだ!?”って言うはずだろう」と言っているが、近年のF1の最大のパッシング要素であり、またリスクの最も少ない抜き方である、残り燃料の差を利用したピットインでのパッシングの目をわざと潰したという批判を受けてもしょうがないのではあるまいか。

とまあ、今年はここにきてこういう妄想の構築をするぐらい気分が盛り上がっているわけですが。

チケット手に入ったし(ぼそっ)

本日のツッコミ(全2件) [ツッコミを入れる]

- taru_k [“チームオーダー”とか言うと、何か悪い事みたいだけど、要は戦略なので私は別に構わないと思っていたりします. # 9..]

- hs [ドライバーが理解(納得ではない)した上での作戦、オーダーなら私もある程度はしょうがないと思っています。 ただし、上の..]


2008-06-01

Hikiで言及のないTrackbackを拒否する

Hikiを使って公開しているページに対するTrachBack SPAMがひどいので、tDiaryのソースなどを参考にしつつ、言及のないTrackBackをはじくよう設定。tDiaryのspamlinkcheck.rbをベースに「言及リンク」よりは条件を緩めて、ページへのリンク、ページのタイトル、筆者(私)の名前、サイトのタイトルのいずれかがTrackBack元のページに含まれていれば受け付けるようにしました。

まずmisc/plugin/trackback.rb にres_error()メソッドを追加

def res_error( msg )
response = <<-END
<?xml version="1.0" encoding="iso-8859-1"?>
<response>
<error>1</error>
<message>#{msg}</message>
</response>
END
head = {
'type' => 'text/xml',
'Vary' => 'User-Agent'
}
head['Content-Length'] = response.size.to_s
head['Pragma'] = 'no-cache'
head['Cache-Control'] = 'no-cache'
print @cgi.header( head )
print response
end

次に、同じファイルの trackback_post メソッド内に以下のソースを追加。

  begin
chkf = false
src_uri = url.dup.untaint
allow_keys = [ "#{@conf.index_url}?#{@page.escape}", utf8_to_euc(@db.get_attribute(@page, :title)), @conf.author_name, @conf.site_name ]

Timeout::timeout( 10 ) do
require 'open-uri'
open( src_uri ) do |f|
src_data = f.read( 100 * 1024 ).to_euc
allow_keys.each do |k|
if src_data.include?(k)
chkf = true
break
end
end
end
end

unless chkf
res_error("Sorry, Your trackback has refused by SPAM filter. Please contact me if you are not a SPAMMER.\n")
return
end
rescue
res_error("Sorry, something wrong and I cannot accept your trackback.\n")
return
end

allow_keysに要素を増やせばTrackBackを受け付ける条件をより緩和できます。

しばらくこれで様子見。


2009-06-01

[Windows] Canon iP4500とvisioの組み合わせで強制的に後トレイから印刷される。

上記の通りなんですが、メニューの印刷ボタンを押したときはもちろん、Ctrl+Pで印刷ダイアログを出してから[プロパティ]で他の給紙方法に変えたりしても、その設定が反映されず、頑なに後トレイから印刷しようとする状態の解決法。

  1. [ファイル] メニューの [ページ設定] をクリックする
  2. [プリンタの設定] タブの [設定] をクリックする
  3. 給紙方法で「後トレイ」しか選択できない状態になっている場合、[プリンタの設定]→[プロパティ]の順にクリックして、適切な給紙方法を選択する。

サポートページの記述とちょっと手順が違いますが、一度上記の設定をした後にvisioを再起動するとちゃんと記述通り各種トレイを選択できるようになりました。すごく謎。

ちなみに、これに気付く前にキヤノンのサポートに連絡したところ、回答に記述されていた手順はこちら。

 1.[スタート]-[コントロールパネル]-[プリンタ]をクリックします。
 2.iP4600のプリンタアイコンを選択、右クリックして[印刷設定]画面を開きます。
 3.[ページ設定]タブの[印刷オプション]をクリックします。
   [印刷オプション]画面が開きます。
 4.「アプリケーションソフトの給紙設定を無効化する」にチェックを入れます。
 5.[OK]ボタンをクリックしダイアログを閉じます。
 6.[適用]-[OK]ボタンをクリックします。

いや、確かに回避できるだろうけどそりゃ違うでしょ。

あ、ちなみにマイクロソフトのサポートにも問い合わせしようとしたんですが、状況説明と個人情報を送信した後に、こんなこと言われました。

本日のツッコミ(全1件) [ツッコミを入れる]

- 迷人 [私の場合、Vosio2010とキャノンMP980の組み合わせですが、同じトラブルがありました。同じ手順で解決しました..]


2010-06-01

HTML5のセクションと見出し

出張に向かう電車の中で「9784822284220」を読んでいたんですが、第5章のsectionタグとh1〜h6による見出しとの関係に強い違和感が…。

例えば、Wikiスタイルで

! 見出し1
ああああ
!! 見出し2
いいいい

という記述は、

<h1>見出し1</h1>
<p>ああああ</p>
<h2>見出し2</h2>
<p>いいいい</p>

のように変換されますが、これはこのままでHTML5としても正しいようです。ただ、内部的(?)には見出しのレベルを変更すると暗黙の<section>が生成され、上記のソースは

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <h2>見出し2</h2>
    <p>いいいい</p>
  </section>
</section>

と等価になり、さらにこれは、

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <h1>見出し2</h1>
    <p>いいいい</p>
  </section>
</section>

とも等価になるんだそうです。この例だけ見ると、セクションとその見出しの関係を一見うまく表現できているように見えますが、実はHTML5のウリであるはずの「前方互換性」がかなり怪しくなっています。

例えば、

! 見出し1
ああああ
!!! 見出し2
いいいい

というレベルを飛ばすような記述は、同じように変換すると

<h1>見出し1</h1>
<p>ああああ</p>
<h3>見出し2</h3>
<p>いいいい</p>

となります。ここで、HTML4とHTML5でスタイルに互換性を持たせるためには、

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <section>
      <h3>見出し2</h3>
      <p>いいいい</p>
    </section>
  </section>
</section>

としなければならないばずなのですが、「暗黙の<section>」は見出しのレベルの差に関係なく1つしか入らないようなので、実際には

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <h3>見出し2</h3>
    <p>いいいい</p>
  </section>
</section>

と等価になり、さらにこれは

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <h2>見出し2</h2>
    <p>いいいい</p>
  </section>
</section>

<section>
  <h1>見出し1</h1>
  <p>ああああ</p>
  <section>
    <h1>見出し2</h1>
    <p>いいいい</p>
  </section>
</section>

などとも意味的には等価でHTML5に準拠したブラウザではこれらを同じように表示することが期待されているようです。

4.4.11 Headings and sections

で、これって

  • あるタグ(h1)が、他のタグ(section)の影響を受けてスタイルが変わる
  • 逆に違うタグ(上の例ではh4とh1)を記述しても、sectionの段数が同じならそれらの違いは無視されて同じスタイルが適用される
  • 暗黙のセクションが1段だけ入るというルールが、さらに事態をややこしくしている

ということになり、この理解が正しいなら、CSSでスタイルを記述するのが難しい、かなり筋が悪い仕様だと言わざるを得ません。

もし仮に上のようなHTML4とHTML5の仕様の違いをhikidocなどの生成系の方で吸収しようとすると、

  • 最後に出てきた見出しのレベルを記憶しておく
  • 見出しを読み込んだら最後の見出しとのレベルの差を計算してsectionタグを入れ子にする

といった実装になるんでしょうが、状態を記憶しておかなければならないようなデザインにせざるを得ないような仕様というのは今時どうなんでしょう?

いっそのこと

  • h1〜h6は全て廃止(あるいはHTML4との互換性が完全に保てる形で残す)
  • セクションの入れ子関係は<section>タグで表現する
  • セクションのタイトルは<title>(<t>)タグ、サブタイトルは<subtitle>(<subt>)タグを使う

とかにしてくれればいいのにとか思いました。