2013年12月15日

痛恨のボード

今日はIMPリーグの初戦で2連敗してしまったのですが、勝敗に直結する痛恨のボードがありました。
私がEです。

Board #27
None Vul, Dealer S
10 9 7 2
Q 10 2
9
10 8 4 3 2
A K Q N

 W            E 

S
J 8 4 3
A K 8 6 4 5 3
A J 10 8 2 Q 7 6 4 3
K J
6 5
J 9 7
K 5
A Q 9 7 6 5

ビッドは以下の通り。

NESW
P 1H
P 1S P 3D
P 4D P 4S
//
O.L. 6

パートナーにはダイヤモンドでスラムトライしてほしかったですし、私が4Sに5Dと言えばよかったのかもしれません。
しかし結果としてご覧のとおり、6Dがほぼコールドですが、4Sをプレイする羽目になってしまいました。
スペード3-3ならほぼ出来なのですが、AKQと取ってみると4-2ブレークが判明。
ハンドへ戻ってスペードを刈り切りたいのですが、戻るエントリーがありません。
仕方がないのでハートをA、Kとして、3枚目をハンドの最後のトランプでラフするとQとJが落ちてきました。
続いてダイヤモンドQをリードすると、Kがカバーされ、Aで勝ちます。
後はダイヤモンドを出すとNが最後のトランプでラフ。当然クラブが返ってきます。
ここでクラブのAかQのどちらかがNにあれば出来なのですが(もちろんゲスを当てる必要はあります)、残念ながら両方とも裏にいたのでダウン。

ちなみに裏は、Wが2Cオープンして4Hをプレイして、ジャストメイク(ダイヤモンドが1枚ハートに紛れ込んでいて、ハートが6枚だと思ってビッドしていたそうです)。
この1ボードで12IMPのスイング。
8IMP差での負けでしたから、5Dに行って作っていれば勝っていたわけです。

というわけで、本日痛恨のボードでした。
雪の中わざわざ来てくれたチームメイトの東北大学BCの学生さんたち、ごめんなさい!
posted by ぽそこし at 23:00| Comment(2) | TrackBack(0) | コントラクトブリッジ | このブログの読者になる | 更新情報をチェックする

2013年12月04日

【備忘録】robocopyコマンドの盲点

Windows上でファイルをコピーするとタイムスタンプが保存されますが、フォルダーをコピーするとタイムスタンプがコピーした日時になってしまうのが普通でした(空のフォルダーの場合には、条件によってタイムスタンプが保存される場合もあるようです)。

つい先日、robocopyというコマンド(Robust Copy「堅牢なコピー」という意味らしいです)を使って「/DCOPY:T」というスイッチを付けると、タイムスタンプを保ったままフォルダをコピーしてくれるという情報を耳にしました。
実際に試してみると、確かにそうなっているみたいです。
このコマンド、私の使っているWindows 7やWindows Server 2008 R2では標準でインストールされていました。

でも…。
「/MOVE」スイッチ(ファイルをコピーではなく移動する)を付けるとダメみたいなんですね。
ちょっと考えてみたんですが、「/MOVE」スイッチを付けると、コピーが成功したファイルやフォルダは消されてしまうので、消されたファイルなりフォルダが入っていた親フォルダの変更日時が変わってしまうから、ということみたいです。
でも、バカですよね。はっきり言って。
せっかくフォルダのタイムスタンプを保持するスイッチがあるんだから、親ディレクトリのタイムスタンプを覚えておいて後で書き戻すとか、そのくらいやってくれても罰は当たらないと思うんですが。
まあ、マイクロソフトを信じた私が一番バカだったのかもしれません。

ちなみに(ご存知の方も多いかと思いますが)Unix系のOSで同じことをするには、ソースディレクトリへ移動して
find -depth -print0 | cpio -0pvdm target-directory

みたいなことをします。
いちおう解説しておくと、findの-print0とcpioの-0オプションは、空白を含むファイル名でも取り扱えるようにするため。
findの-depthオプションは、深さ優先探索をするというオプションで、親ディレクトリのほうが後に処理されることになるため、ファイルのパーミッションの問題などがなくなります。
まあ、tarを使っても同じようなことはできますが、cpioのほうが汎用的だと思います。
posted by ぽそこし at 22:30| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年12月02日

【備忘録】Windows Server Backupの古いバックアップを消す方法

きょう、うちのファイルサーバ(Windows 2008 Server R2)のコンソールを開いてみたら、数日前からバックアップが失敗しているではありませんか!
原因は、保存先ハードディスクの容量不足とのこと。
1TBの外付けハードディスクをバックアップ専用で接続しているのに…。

Windows Server Backupって、容量が足りなくなったときに自動で古いやつから削除してくれないの〜、とぼやきながら古いバックアップを消す方法を調べたんですが、かなりてこずりました。
結局、このマイクロソフト日本語TechNetフォーラムから、このTechNetの英語ブログにたどり着き、何とか古いほうからバックアップを削除して、空き容量を確保することができました。

手順を簡単に説明すると(英語のブログに書いてあるまんまですが)
(1) コマンドプロンプトを「管理者として実行」して、
(2) DiskShadow.exeを実行し、
(3) DiskShadowのプロンプトから
Delete shadows OLDEST (バックアップストレージのドライブ文字)
とする。
なお私のようにバックアップに専用ハードディスクを用意している場合、そこにはドライブ文字が割り当てられないので、
Mountvol
コマンドを実行して「マウントポイントなし」と表示されるドライブのGUID(\\?\Volume{7fc1871b-2e1f-11dd-a339-001e4fb7af35}のような文字列)を、ドライブ文字の部分に入力する。
(4) これを何回か繰り返すと、最も古いバックアップから順番に消去することができる。
ということでした。

まあ、でもじきにまた容量が足りなくなってしまうので、根本的な解決策はバックアップ用ハードディスクを買い足すことなんですが…。
この年末でお金のない時期に、ねえ。
(弱り目に祟り目と言うか、UPSのバッテリ警告アラームもその直後に鳴りだすし…)

ちょうどいい機会なので、自宅サーバの全体的な構成を含めて考え直すことにしますか。
posted by ぽそこし at 21:00| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年11月24日

OmegaTを使ってます

今まで公開文書の翻訳にはGoogle Translator Toolkitを使ってきたのですが、改悪に改悪を重ねられ、あまりにも使えないツールとなってしまいました。
中でも、いつの間にか翻訳メモリのダウンロードができなくなっていたのには驚きました。以前は確かにできていたのに…。ユーザの利便性を犠牲にしてまでも囲い込みたいのか? まさに「Do the evil」の企業スローガンどおりですね。w

と言うわけで、その代わりにOmegaTという翻訳メモリソフトを使うことにしました。
OmegaTは、確か1.3くらいのときにちょっと使ったことがあったのですが、最新版(2.6.3 Update 6)ではだいぶ変わっていてちょっと戸惑ったのも事実です。
いろいろとググったりしたのですが意外と情報がなく、最終的には自力で解決したのですが、同じようなことで困っている方もいらっしゃるのではないかと思い、ここにまとめておくことにしました。
参考にしていただければ幸いです。

ちなみに、11月22日にリリースされた最新版では、エディタが異常に遅くなるという問題が解決されています。
最近OmegaTを使っていて、エディタが遅いという症状に悩まされていた方、ぜひ最新版を試してみてください。

(1) 改行で段落を区切りたい

私は翻訳対象のテキストファイルは1段落1行(つまり改行で段落を区切る)にしているのですが、OmegaTの初期値は「空行(=連続する改行2個)で段落を区切る」になっています。
これを変更するのは、以前は「分節化規則」のところでできたような記憶があるのですが、最新版ではここにはありませんでした。
取説を見ても「たとえば、テキストファイルの場合は、改行で分節化するか、空行で分節化するか、または、まったく分節化しないかのいずれかです。」とあるだけで、じゃあどうすればいいのかは書いてありません。(><)
実はこれ、「ファイルフィルター」で設定するんですね…。
「ファイルフィルター」ウィンドウを開き、「テキストファイル」を選択して「設定」ボタンを押すと、「原文を分節化する位置:『改行』『空行』『しない』」というラジオボタンが出てきて、初期値は『空行』が選択されているので、これを『改行』に変更し、「確定」ボタンを押し、もう一度「ファイルフィルター」ウィンドウの「確定」ボタンを押せばOKです。
ちなみに、ファイルフィルターや分節化規則の変更は、プルダウンメニューの「設定」からもできますが、これだとマシンごとの設定になってしまいますので、一度プロジェクトを設定してからプルダウンの「プロジェクト」→「プロジェクト設定」で出てくる画面から「ファイルフィルター」または「分節化規則」ボタンを押して、「分節化規則をプロジェクト専用にする」または「ファイルフィルター規則をプロジェクト専用にする」にチェックを入れてから設定するほうがよいと思います。
こうしておけば、ファイルサーバ上のプロジェクトを別のマシンで開いた場合にも、その設定が適用されますので。

(2) 変なところで文節が区切られる

次に困ったのが、「23 November 2013」とか「2.1 Assumptions」という日付や見出しの場合、最初のスペースで分節化されてしまうことでした。
これはデフォルトの分節化規則に余計なおせっかいが書いてあるからなのですが、そちらは一応尊重して、カスタム分節化規則を追加することで対応しました。
そう、OmegaTは分節化規則を自分で設定できるのです。ただし、正規表現の知識が必要ですが…。
例として、私の設定した分節化規則をお目にかけましょう。(クリックで拡大)
20131124.png
「分節または例外」の欄にチェックが入っている場合、「この規則に該当すれば、その位置で分節化する」を意味します。チェックが入っていない場合、「この規則に該当すれば、その位置では分節化しない」を意味します。わかりにくいですよね…。
「その位置」とは、「分節前の構成例」と「分節後の構成例」の間に挟まれた地点です。
例えば、下から5番目を見てみます(ちなみに、これより上はOmegaTデフォルトで設定されていた分節化規則、これを含めてこれより下は私の設定した規則です)。

「分節または例外」:チェックあり→分節化する
「分節前の構成例」:\S→これは「空白文字以外」を意味します。
「分節後の構成例」:\t→これは「タブ」を意味します。

つまり、「空白文字以外の後にタブが続いたら、その間で分節化する」という意味になります(私は表のある文書を翻訳することが多く、表の要素はタブで区切るので、こうしておくと好都合なのです)。

では次。
「分節または例外」:チェックなし→分節化しない
「分節前の構成例」:U\.S\.→これは「U.S.」を意味します(正規表現では「.」は特別な意味を持つため、「\」でエスケープしています)。
「分節後の構成例」:\s→これは「空白文字」を意味します。
つまり、「U.S.」の後に空白文字が続いても、分節を区切らないでね、ということです(例えば「The U.S. Government is ...」みたいな文章が途中で文節に区切られてしまうことが防げます)。

だいたいわかってきたでしょうか。では次に行きましょう。
「分節または例外」:チェックなし→分節化しない
「分節前の構成例」:\s[a-z]\.→これは空白文字の後に英小文字、さらにその後にピリオドを意味します。
「分節後の構成例」:\s[a-z]→これは、そう、空白文字の後に英小文字を意味します。
これは例えば、「Which do you like: a. apples b. pears c. dates?」みたいな文章が、途中のピリオドで分節化されることを防ぐために追加した規則です。

次はちょっと難しいです。
「分節または例外」:チェックなし→分節化しない
「分節前の構成例」:^\d(\.?\d)+\s→ちょっと順を追って説明しますね。
まず\dは「数字」を意味します。以前出てきたように、\.はピリオド、\sは空白文字です。
それでは^は何かと言うと、文頭を意味します。+は、その前の文字またはグループ(括弧でくくられている)が1回以上繰り返されるという意味。?は、その前の文字またはグループが0回か1回あるという意味。
つまり、これらをまとめると、「文頭に数字があって、その後に(ピリオドを挟んでも挟まなくてもいいけど)数字が1回以上繰り返されて、その後に空白文字がある」という意味になります。
「分節後の構成例」:[A-Z]→これは、英大文字を意味します。
これが実は最初に例に挙げた、「23 November 2013」とか「2.1 Assumptions」の最初の空白では分節化するな、という意味になるんですね〜。
わからなかった方は、もう一度よーく考えてみてください。

最後は、簡単ですね。
「分節または例外」:チェックあり→分節化する
「分節前の構成例」:\.”\s+→これは、ピリオドの後に閉じ二重引用符、次に空白文字の1回以上の繰り返しを意味します。
「分節後の構成例」:[A-Z]→これは、英大文字を意味します。
つまり、「He said, “This is a pen.”」みたいな文章の後で分節を分けてくれるようにするために追加した規則です。

いかがでしょうか?
分節化規則のカスタマイズができるようになると、OmegaTの使いこなしの幅がぐんと広がると思います。
参考になれば幸いです。OmegaT、いいですよ!
posted by ぽそこし at 23:56| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年11月07日

【コントラクトブリッジ】高松宮妃杯報告(その2)〜唯一のスラム〜

高松宮妃杯ではスラミッシュなハンドはあまり来なかったのですが、トラベリングスコアを見ると私がのほほんと3NTをプレイしているハンドで6Cとかに行ってメイクしているペアが結構いました。
まあ、そこが実力の違いなのでしょうけど、私がプレイした唯一のスラムは以下のハンドでした。
私がEです。

2nd Session, Board #6
EW Vul, Dealer E
K 8 6 5
K 8 7 6 3 2
Q 5 2
A J 8 6 4 N

 W     -      E 

S
K Q 9 7 3
3 A Q 9 7
A Q 10 9 5
K 7 A 9 6 3
10 5 2
J 10 4 2
J 4
J 10 8 4

ビッドは以下の通り。

NESW
1S P 3NT*1
P 6S*2 //
*1:13-15HCP、スペード4枚以上、(約束では)ボイドやシングルトンなし
*2:コントロールを聞いてもしょうがないので…。
O.L. J

3NTはちょっと変なビッドですが、いずれにせよフォーシングレイズを聞いたEは少なくとも6Sまではビッドするでしょう。
ダミーが開くと、普通のプレイではウィナーが足りなさそうなことがわかるので、サイドスーツのウィナーをキャッシュしてからクロスラフに行きます。
ところがAを取って2枚目をハンドでラフすると、SからJが落ちてきます。これをどう判断するかですが、私は
  1. SのはJ xではなくK J xかもしれない
  2. SのがJ xだったとしても、10は持っていないかもしれない
  3. たとえ両方外れていてSにオーバーラフされてトランプを返されたとしても、まだ6Sはメイクする可能性が十分にある
という理由から、7メイクする可能性を最大にするために3順目の9でラフしました。
あにはからんや、SのはやっぱりJ xで、しかも10も持っていたためオーバーラフされてしまい、当然トランプが返ってきます。
しかしこれをダミーのAで勝ち、クロスラフを継続するとあとは全部とれて無事6メイク。
でも、結構7メイクしているペアがいたので、ボードトップ18点のところ8.5点しか取れませんでした…。
7メイクしたペアは、リードが来たんでしょうね、きっと。
まあ、私もをハイラフしてをフィネスすれば7メイクしたわけですが、普通そういうプレイはしないでしょう…。
posted by ぽそこし at 22:15| Comment(0) | TrackBack(0) | コントラクトブリッジ | このブログの読者になる | 更新情報をチェックする