ページ

2011年4月29日金曜日

◆横浜、横綱相撲。

4月29日横浜線。

1回表、坂本がいきなり2塁打で出塁。
続く脇谷、バントをファールした挙句空振りの三振。
全く持って何を考えているのか。
絶対にやっちゃいけないのが三振ってのは中学生でも判ること。
これがクリーンアップとかならまだ話は分かる。
もしくは相手が150K以上の球を投げるすごいピッチャーだとか。
本当にダメダメだ。

試合結果は2流投手同士の投げ合いで打ち合いとなったが、しつこさで優った横浜の勝ち6-7 。

巨人は先発もダメだが、中継ぎの弱さも相変わらず。
今年はいくらかやるかと思われた西村も相変わらず。
球自体は悪くないのだがノーアウトから1本ヒットを打たれただけですぐ弱気になってコースばかり狙う。
カウントを悪くしてはポコン。
するともっと弱気になって四球。
指導者も悪いんだろう。

5-0になった時点で巨人だったらプリプリ行くところを、横浜は1点ずつしつこく取りに来る。
ちょっと詰め寄られると巨人はすぐにバタバタし始める。
ピッチャーは相変わらずだけど今年の横浜の打線は良いね。

ちなみにゴンちゃんは相変わらずだったな。

去年が調子が悪かったのではなく一昨年がたまたま良かったのだと早く気付かないと去年の2の舞。

まぁ、判ってても代わりも居ないし仕方ないか。

勝っても負けても良いが、もっとレベルの高い試合が見たいものだ。

2011年4月28日木曜日

◆館山、パーフェクト

なピッチング。

本当に素晴らしいピッチングだった。
ボテボテのラッキーヒット2本とデッドボール一つ。
内容的にはパーフェクトに等しい。

巨人の貧打線ではどうにもならない投手って感じ。

巨人の澤村も悪くなかった。
十分合格だろう。
今年の新人の中では一番ではなかろうか。
裕ちゃんよりはるかに良い。
巨人打線が相手だったら完封したのではないだろうか。

ヤクルト打線はやはりしぶとい。
青木、田中、宮本あたりは良いピッチャーが相手でも何とか食らいついていく。
右打ちが非常に多い。

それに引き替え、巨人打線。
相手ピッチャーが素晴らしく、自分たちの打線も調子が悪いのに、相も変わらずプリプリ引っ張ってばかり。
全く策がない。
そういう打線だと言ってしまえばそれまでだが、脇谷あたりはもう少し頭を使えないものだろうか。
どうも似たタイプのバッターばかり。
テレビを見る限りでは亀井あたりも復活しそうにないな。

小笠原もだいぶ深刻。
4打席4三振ではね・・・。
巨人で唯一粘りのあるバッターなのに。

ライアルは語るに値しない。
4打席4三振でも、当たればホームランの可能性ありって感じならまだしも、ありゃどう見てもうまくいってセンター前ゴロのヒットって感じだ。

ラミレス、小笠原の後釜を養成するために今年は若手に切り替えたらどうだろうか。

っといってもあまり楽しみな若手もいないんだよな・・・。

2011年4月27日水曜日

◆消化試合?

4月27日ヤクルト戦。

1対4で巨人の負け。

まるで消化試合を思わせるような覇気のない試合。
まぁ内海は実力的にあんなもんでしょう。5回までに3点ならごく普通。

ただし、今の巨人では3点取られた時点で勝負あった。
よっぽど3流のピッチャーじゃない限りは1,2点がやっとといった感じ。

ヤクルトのバレンティンは良さそうだね。
ヤクルトは比較的外人を取るのがうまい。

今年の巨人の外国人は総崩れ。

日本人もあまり魅力的な選手はいないなぁ。
坂本、長野あたりは悪くはないけど、確実性がない。
積極性はあるが、選球眼が悪い。
私は基本的に選球眼の悪い選手が好きではない。
選球眼が悪くて一流になった選手はあまり記憶がないし。
ただ、わき役としてみた場合には結構魅力がある。

なので、3番4番を打つ生きのよい日本人選手が出てきてほしいところだが、ファームをみてもまったく見当たらない。

脇谷あたりもそろそろ開眼しても良いころなのだが、相変わらず淡白なバッティングを繰り返す。
自分のタイプを判っていないのだろうか。
もっとひきつけて粘っこいバッティングしないと。

松本は何をやってるんだ?早く出てこい。
去年の救世主朝井は何してるんだ?
わが県期待の星、木村正太はまだけがが治らないの?もうだめ?

原は今年も外国人の調子を測りきれず悪くてもバカの一つ覚えで使い続けていくんだろうな。
監督になりたての頃は、へぇーと思わせる選手起用をしていたが最近では誰でもできる保守的な起用ばかり。

今シーズンの楽しみは澤村だけか・・・。

◆IISエラーページのカスタマイズ

エラーページをカスタマイズするにはIISマネージャからエラーページを編集すれば良いらしい。
image

image

デフォルトは"C:\Windows\System32\inetsrv\config\applicationHost.config"で設定されていているようだ。
image

これを見るとエラーページは"%SystemDrive%\inetpub\custerr"に置かれている。

先のエラーページ編集画面にてサイト固有のエラーページの設定が可能で、その設定値はサイトフォルダーのweb.configに置かれるって仕掛けなのだろう。

ただし、このエラーページ設定画面の使い方が今一つ良く解らない。
例えば、404をカスタマイズしようとしてその行をダブルクリックするとこんな画面が表示される。
image

ここでファイルパスを編集するために「設定」ボタンをクリック。
image

試しにcusterr2を指定してみる。(実体はcusterrからそのままコピーした)

しかし、なぜかこれではうまくいかない。
image

なんとなく類推するにapplicationHost.configの以下の部分でそういう指定がされているように見える。(単純に英語を解釈すると)
image

この指定を修正すれば良いのだろうが、applicationHost.configを触るのは気が引ける。Web.configでこの設定自体を上書きるのかもしれないが、あまり突き詰める問題でも無さそうなので素直に相対パスを指定することとした。
が、その相対パスの指定の仕方が判らない。
image

この画面の「ルートディレクトリパス」が物理パス以外上手く受け付けてくれない。
..\とかやってみても、エラーにはならないのだが、思った場所を見に行ってくれない。..\..\..\..\..\とかありえなそうな指定をしてもエラーにならないのでさっぱり判らない。

なぜ、こんな簡単そうな事がこんなにも難しいのか・・・。
あれこれ試しているうちにIISマネージャが異常終了までする始末。

ーー

一晩眠って気を取り直し。
仕方が無いので英語情報を漁って見る。
すると、どうも根本的に勘違いをしていたような気がしてきた。

image
この画面で、エラーページを単純に差し替えるには「静的ファイルのコンテンツをエラー応答に挿入」、aspxなどに置き換えるには「このサイトでURLを実行」を指定すると単純に字面から判断していたのだが、どうもこれが違っているような気がしてきた。

「静的ファイル」と「実行」というキーワードで脊髄反射的にそう解釈していた。

「エラー応答に挿入」に注目すると、テンプレート的なエラーページに対して部分的に挿入するという事なのではないだろうか。

「実行」という文字と「例:hoge/404.aspx」で、ここではaspxを指定するものだと思っていたが単純に差し替えたい場合はここにhtmlファイルをしてすれば良いのではなかろうか。

なおかつ、デフォルトでは以下の機能設定の編集にて、
image

image

ローカル要求に対してはカスタムエラーページを表示しないようになっているので、リモートからアクセスして確認するか、「カスタムエラーページ」に変更してから確認してみると良さそうだ。

これでやっと以下のうようなエラーページを表示することが出来た。
image

「静的ファイルのコンテンツをエラー応答に挿入」の具体的な方法は未だに解らないままだが(調べていない)、今回はIISの機能を俯瞰するのが目的なのでこのへんで良とする。

--

もう一度調べてみた
IIS: ◆エラーページをカスタマイズする

2011年4月26日火曜日

◆東野相変わらず

4月26日ヤクルト戦。

いつものように石川を打てず。
そろそろ強力打線ていう枕詞はやめてほしい。恥ずかしいから。

東野は良さそうに見えて、ピンチが来るとバタバタとやられる。
去年の後半からずーっと同じ。

まったくつまらない試合。
1-7で巨人のぼろ負け。

アルバラデホ、使えん。
ライアル出すくらいなら太田でも使った方が将来のためになる。

阿部が戻るまで5割程度なら御の字って状態だな。

◆IE9を入れてみた

入れて1分でバグに遭遇(笑)。

IE9入れると紹介ページが立ち上がるので、新機能とやらを試してみた。
表示したタブをWindows7のタスクバーにドロップするとピン止め出るのだとか。
っが、出来ない。
image

私のデスクトップは此の様にタスクバーの位置を右側にしている。(マルチウインドウにしているので、この右にもう一つ画面があり、このほうが使いやす)
どうもこれがよろしくないようだ。
ウインドウを画面の右端にドラッグしたときに自動的に右半分表示にしてくれる機能と干渉しているのだろうか・・・。

最近のMSときたら、と嘆いてみても始まらないので回避策を探る。
ドラッグ&ドロップ以外にもメニューとかでできそうなものなのだが、単純には見つからない。

ふと思いつき、アドレスバーにあるアイコンをドラッグ&ドロップしてみる。
image

こんどはOKだ。

それ以外は目に見えて便利になった機能は無さそう・・・。
一口で言えばGUIについてはChromeの良いところをパクリましたといった感じなので、Chromeを使ったことがある人は違和感なく使えるのではないだろうか。

よく言えば、Choromeの使いやすさ軽さとIEの互換性の高さが融合されたといった感じで特にこだわりのない私としては嬉しいバージョンアップだ。

XP向けには提供されないようなので、果たしてWindows7への移行を加速させるのか、XPユーザーのIE離れを加速させるのか興味深い。

2011年4月21日木曜日

◆澤村を初めて見る

4月21日阪神戦。

先発はルーキー澤村。
初めてテレビで見た。

全体的にレベルの高いピッチャーなのは確かなようだ。
球速もあるし、変化球も一通り投げる。コントロールも悪くはなさそう。
ピンチでもあまりバタバタしないので精神的にも強そうな印象を受けた。
5回に好調の鳥谷に対し、ストレートでファールを打たせ、フォークで三振を取ったあたりはなかなかのピッチング。
これからどの程度伸びていくのか楽しみだ。

それに引き替え打線は相変わらず。
毎年毎年左ピッチャーにはやられっぱなしだ。

それにしても今年の阪神はピッチャーが良いね。
これで打線が去年通りだったら100勝くらいしたかもね。
しかし、そこが野球の不思議なところで打線はさっぱり。
マートン、平野あたりは全く去年の面影が無い。
加えて金本あたりはさすがの鉄人もそろそろ衰えは否めない感じ。

どうなることやら。

後半へ続く・・・。

3対1で巨人が勝ったようだ。
6安打同士の投手戦?

澤村は堂々としたもんだね。
イメージ的には、まっすぐとフォークで三振かホームランかフォアボールかって感じのピッチャーかと思っていたのだがだいぶ違うようだ。
どちらかというとスライダーが武器って感じだなぁ。
もうある程度完成されたピッチャーだね。

今後が楽しみだ。

ただ、今年もピッチャー、バッターともに数が足りないな。
ロメロが抑えをやってたけど間違って大化するのを期待だな。

2011年4月20日水曜日

◆型推論

  static Z F<X, Y, Z>(X value, Func<X, Y> f1, Func<Y, Z> f2)
  {
    return f2(f1(value));
  }


ちょっと前までなら、これを見て「多分これはC#ではない」と思った可能性大である。
Zって何?Fって何?Funcって何?っと?だらけである。

stati int hogeGet(string value , hogeMethod f1 , pekeMethod f2)なんて書いてあればなんてことはないのだが、intがZに変わっただけで全く違った印象になってしまうものだ。
なれれば便利であろう型推論も慣れないと「なんだこれは」となってしまう。

まぁ、これは今に始まったことではなく、クラス名に続くコロンもわかっている人にとっては「継承、もしくは実装」と簡潔に理解できるがそうでない人にとっては、このコロンて何よ?となってしまうだろう。
(ちなみにコボラーな私は最初にC系の言語を見たときにvoidって何?とずっと思っていた)
これが、VBなんかだと若干緩和されていて継承はinherit、実装はimplementといったキーワードが使われるので普通の人は想像がつく。
良くも悪くもC#は簡潔な言語である。

話は戻って、上記のメソッドは第2回 ラムダ式と型推論 - @ITにてこんなサンプルとして載っていた。

using System;
class Program
{
  static Z F<X, Y, Z>(X value, Func<X, Y> f1, Func<Y, Z> f2)
  {
    return f2(f1(value));
  }
  static void Main(string[] args)
  {
    double seconds = F("1:15:30",
                       s => TimeSpan.Parse(s),
                       t => t.TotalSeconds);
    Console.WriteLine(seconds);
  }
}

使い方を見て、やっと
static double F<string,TimeSpan,double>~
って事かと判る。
すなわち、型推論の前にジェネリックに今ひとつついていけていないのだ。
このFメソッドの定義を見て「おー、これは便利なメソッドだ」といってその下のサンプルのような実装を私が書くことは無いように思う。(笑)

話を推論型に戻すと、上記サンプルは本来型指定を行えば、

class Program
{
    static Z F<X, Y, Z>(X value, Func<X, Y> f1, Func<Y, Z> f2)
    {
        return f2(f1(value));
    }
    static void Main(string[] args)
    {
        double seconds = F<string,TimeSpan,double>("1:15:30",
                           (string s) => TimeSpan.Parse(s),
                           (TimeSpan t) => t.TotalSeconds);
        Console.WriteLine(seconds);
    }
}

てな感じになるのだろうか。
慣れないとこの方が判り易いと思うが、慣れてくると冗長でタコなコーディングと批判されるのだろう。

COBOLの時代でも、あまりに頭のよい人が書いたソースはどうも判りづらいと思ったものがだが、最近のC#はよりソースの質の差が出やすくなってきているように思う。

自分一人で作って、自分一人がメンテナンスするのであれば何も問題は無いのだが、大プロジェクトになってくるとその基準を決めるのが難しい。
特に最近のプロジェクトでは作る人と保守する人が違うのは当たり前になってきているので余計考えさせられる。

COBOLの時代は良かったなぁ。(笑)

◆拡張メソッドの定義

拡張メソッドであるWhereは以下のようなLINQなどで使える。

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
  static void Main(string[] args)
  {
    int[] n = { 2, 3, 5, 7, 11, 13 };
    IEnumerable<int> numQuery2 = n.Where(num => num < 10);
    foreach (int i in numQuery2)
    {
      Console.WriteLine(i);
// 出力:
// 2
// 3
// 5
// 7
    }
  }
}


まぁこのサンプル自体はLINQが少しでも判っていれば簡単に書けるだろう。
ただし、Where拡張メソッドの定義は以下のようになっているのだが、この定義を見て上記Whereの構文が書けるだろうか。

public static IEnumerable<TSource> Where<TSource>(
  this IEnumerable<TSource> source,
  Func<TSource, bool> predicate
)


はっきり言ってチンプンカンプンである。
拡張メソッドのの使い勝手自体は気に入っているがその仕組みはちょっと無理やりっぽい感じもある。
そもそもあるクラスのメソッドを他のクラスを使って拡張するというのは反則ではなかろうか。(笑)

まず戻り値はIEnumerable<TSource> 型。これは判る。
次に、引数はIEnumerable<TSource>型Func<TSource, bool> 型の2つを取る。そして最初の引数にはthisなんてよく判らないキーワードが付いている。
どうも、この2つの引数は上記サンプルで使用しているWhereメソッドの引数(num => num < 10)を単純にさすわけではなさそうだ。
結果から類推するに、Whereメソッドは最初の引数
 IEnumerable<TSource> 型に対する拡張ができるよという事ではなかろうか。(逆に言うとIEnumerable<TSource> 型でWhere拡張メソッドが使えるという事)
thisというキーワードは拡張メソッドだよってしるしかな。
2つ目の引数が実際に拡張メソッドとして使った時の引数。
ここではFunc<TSource, bool>デリゲートなので、TSourceを引数としてboolを返すメソッドまたは同等のラムダ式という事で
Where(num => num < 10) という使い方ができるという事ではなかろうか。
ちなみにwhere<TSource>の<TSource>は型推定(だっけ?)で推定できるので省略可能って事。

と解釈してみた。

◆ラムダ式サンプル

おなじみ@ITのサイトからラムダ式のサンプルを転載しておく。
LINQのために導入されたラムダ式だが、LINQ以外でも簡略化されたDelegateとして使い出があるようだ。

using System;
delegate int 引数なし();
delegate int 引数1つ(int onlyOne);
delegate int 引数2つ(int first, int second);
delegate void 戻り値なし();
class Program
{
  static void Main(string[] args)
  {
    引数なし sample1 = () => 0;
    引数1つ sample2 = (x) => x * 2;
    引数1つ sample3 = (int x) => x * 2;
    引数1つ sample4 = x => x * 2;
    引数2つ sample5 = (x, y) => x * y;
    引数2つ sample6 = (int x, int y) => x * y;
    引数1つ sample7 = (x) => { return x * 2; };
    引数1つ sample8 = (int x) => { return x * 2; };
    戻り値なし sample9 = () => Console.WriteLine("Hello!");
  }
}

◆新外国人トーレス先発

4月20日阪神戦。

全く活躍したためしのないのが巨人が連れてくる外国人。
クロマティ以来、何十年と失敗続き。
スカウトは目開いてみてるんだろうか。

やはり予想通り、3回まで早くも5安打3四球とメロメロ。

かたや阪神の外国人スタンリッジは素晴らしいピッチング。
今日もはや勝負あったって感じ。

と思っていたらひょんな所から巨人に流れがやってきて同点。
まずはめったに四球を取らないラミレスがフォアボール。
なんか、読みが外れてインサイドのカーブに手が出なかったって感じ。ストライクといわれても仕方がないくらいのボールだった。
続く高橋由伸は2ストライク1ボールからこれまたフォアボール。
良いピッチングで誘っていたが、由伸が手を出さなかった。調子が良いんだろう。
つづく長野はボテボテのラッキー内野安打。
そして今日初スタメンの亀井。
ラッキーなことに初球真ん中のストレートをヒットで2点。(それでも先っぽか詰まったのか会心の当たりではなかったが)
本当に野球は何が起きるかわからない。

トーレス、実際にテレビで見てみたが今ひとつ実力を測りきれなかった。
ストレートはそこそこ良さそう。変化球はスライダーとカーブか。チェンジアップも投げているのかもしれないがよく判らなかった。コントロールも良からず悪からず。未知数な分だけグライシンガーやゴンザレスよりも良いか。
とにかく阪神打線が当たっていないので判断しかねる。
今年の阪神はピッチャー次第かな。

ドラフト1位の榎田は良さげ。大化けするかも。

何にしても今日は巨人につきがあった。
微妙な判定が多く、だいぶ巨人に有利な流れになった気がする。

最後はロメロがなげて1点取られたようだが、今年も抑えがはっきりしなそうだ。
そういえば朝井とかどうしたんだ?
木村は今年も出てこれないのか?

5対4でついてた分だけ巨人の勝ち。

各チームとも今年は投高打低。というか去年が打ちすぎ。
和田とかマートンとか神がかっていた不思議な年だった。

今年は混戦になりそうだ。
中日打線が去年に輪を掛けてダメっぽいので今年も出遅れそう。
阪神も打線がダメなので抜け出るのは厳しそう。
ヤクルトも打線が弱い。(畠山がんばっているな)

◆能見今年もか

4月19日阪神戦。

相変わらず能見にやられる。
決め球のフォークに面白いように三振していく。
去年同様バントも全く決まらず。

東野のそこそこだったが去年同様、ピンチに弱い。精神的なものだろうか。
能見のようなフォークがあれば一流ピッチャーなんだけどね。
なんで決め球の習得に励まないんだろう。

阪神打線が去年のような迫力がないため良い勝負になったが、最後は新井(弟)のラッキーパンチでジ・エンド。

◆ゴンザレス今年もか

4月17日広島戦。

広島の先発はドラフト1位ルーキー福井。
初めて見たが、騒がれたドラフト1位にしては若干スケールが小さい感じ。
まっすぐはこれからもう少し出るのだろうか。
スライダーは普通より若干抜けた感じがして打者のタイミングが外れている。
フォークも投げていたが、まだ調子が出ていないのかな?
スライダーピッチャーって感じかなぁ。

相変わらず巨人は初物に弱く攻めあぐねる。
そこそこヒットは出ているのだが決め手に掛けるのは去年と一緒。

ゴンザレスも去年と同じ感じだなぁ。
一昨年がたまたま良かっただけなのかもしれないと思い始めてきた。

試合はこれといった盛り上がりもなく巨人の負け。

阿部が戻って小笠原の調子が上がるまではこんな感じが続きそう。

◆Excelでの和暦表示

image

式はこんな感じ。
=IF(TEXT(B8,"e")="1",TEXT(B8,"ggg元年m月d日"),TEXT(B8,"ggge年m月d日"))

漢数字で表示するには[DBnum1]書式指定文字を使用する。
=IF(TEXT(B7,"e")="1",TEXT(B7,"[DBnum1]ggg元年m月d日"),TEXT(B7,"[DBnum1]ggge年m月d日"))

◆Excelで表移動に対応した行番号を振る

表に項番を振ることはよくある。
image

途中に行挿入されても大丈夫なように「Row() - 4」などという式を入れて後は全ての行にコピーしておけば良い。

と思ったのだ、先頭に行を挿入されたり表自体を移動したりするとずれてしまう。
image

そこでヘッダーの「No」カラムに対して適当な名前をつけて(ここではHeaderNO)、「Row() – Row(HeaderNO)」とかやってあげると良い。
image

私が最近チェックした記事