院長のメモ帖
2012年8月 7日 火曜日
なでしこJapan メダル獲得!
サッカー女子のなでしこJapan、ついにメダルを手にしました!!
最後の20分間は非常に難しい試合になってしまいましたが、相手のPKのミスもあり守り切りました。
なでしこJapanは、とにかく土壇場に強いです。しっかりした技術とチームの連携といった基礎があってこその精神力でしょう。
最終戦はおそらくアメリカでしょうか。相手はワールドカップのリベンジに燃えてくると思いますし、あの試合はPK勝ちだったので日本から見ても真の勝利とは言えません。今度こそ120分以内に相手を倒して真の女王になってください。
最後の20分間は非常に難しい試合になってしまいましたが、相手のPKのミスもあり守り切りました。
なでしこJapanは、とにかく土壇場に強いです。しっかりした技術とチームの連携といった基礎があってこその精神力でしょう。
最終戦はおそらくアメリカでしょうか。相手はワールドカップのリベンジに燃えてくると思いますし、あの試合はPK勝ちだったので日本から見ても真の勝利とは言えません。今度こそ120分以内に相手を倒して真の女王になってください。
2012年8月 4日 土曜日
なでしこJapan 対ブラジル戦
やったー、なでしこJapan、理想的な試合運びでブラジルを破りました。
予選を含めてオリンピックの日本女子サッカーの試合を生中継で全試合見てますが、決勝リーグの緊張感は格別です。
ワールドカップのドイツ戦で、耐えて耐えて最後にゴールを決めたあの試合の勝ち方と同じパターンに思えました。
ブラジルは、予選で戦った3チームと比べて、1レベル以上高い技術を持っているように思えましたが、なでしこのほうがそれを上回る組織力と精神力を持っているということでしょうか。
いけない、これ以上書いていると明日に響きますのでもう寝ます。
予選を含めてオリンピックの日本女子サッカーの試合を生中継で全試合見てますが、決勝リーグの緊張感は格別です。
ワールドカップのドイツ戦で、耐えて耐えて最後にゴールを決めたあの試合の勝ち方と同じパターンに思えました。
ブラジルは、予選で戦った3チームと比べて、1レベル以上高い技術を持っているように思えましたが、なでしこのほうがそれを上回る組織力と精神力を持っているということでしょうか。
いけない、これ以上書いていると明日に響きますのでもう寝ます。
2012年6月19日 火曜日
パソコンを作った
6月になって、フィラリアや狂犬病予防の患者さんも一段落して、忙しさもピークを超えたので、診療に使っているメインパソコンを新しく作り直しました。
今までメインに使っていたのは、Core 2 Duo E8500で、もう4年ぐらい使ったでしょうか。だいたい同時期に作った自宅のパソコンは半年前に壊れて、E-350のネットトップ系のパソコンでしのいでいますが、さすがに仕事でメインに使うパソコンは、それなりのスピードがほしいので、最新のIntel Ivy Bridgeで作ることにしました。
スペックの概略は、CPU Core i-5 3550、Mother ASUS P8Z77-V、Ram 8GB、OS Win7 64Bit、SSD 60GB、HDD 2TB、GPU AMD Radeon HD 7700です。SSDはインテルスマートレスポンステクノロジーに全域使用してHDDのキャッシュとして使っています。
内臓IGPで外付けGPUをアクセラレーションしようとLucidLogix Virtu MVPしたのですが、これを使うと弥生販売がどうしても動かないのであきらめました。別に、3Dゲームをするわけではないのでこだわりもないので、原因追求はしていません。
CrystalMarkのベンチマークは、Mark 304318 で、当然、今までのPCと比べて最速でした。ちなみに今まで使っていたCore 2 Duoとサーバーとして使っているCore i7 860と比較すると以下のとおりです。
CPUやMEMが順当に上がっているのと、HDDが大幅に上がっています。SSDによるキャッシュはかなり効果があるようです。実際、ログイン画面までの起動時間は今までの半分程度の30秒で、いろいろな場面の体感速度も上がりました。特にVisual Studioの反応性が上がったのは非常にうれしいです。ユーザーコントロールのデザイン画面を開くと今までのマシン、特にE-350ではフリーズしたかと思うぐらい反応性が悪かったのが、すっと開くようになったので生産性が上がりました。
デスクトップとしては申し分ありませんが、ためしにWindows 2008R2 をインストールしてみたのですが、ドライバやユーティリティの対応が悪く、安定稼働しませんでした。このマシンに搭載されているNIC Intel 82579Vのドライバは、なんとデスクトップ専用で、そのままではサーバーとして使えませんでした。ただ、ドライバーインストール画面で、<互換性のあるハードウェアを表示>をオフにして、Intel 82579LMを選択すると、一応動作しました。
調子よければこのマザーボードをもう一枚買ってサーバーもリプレイスしようかと思っていましたが当てが外れました。サーバー用のIbyBridgeのマザーがもうすこし増えるのを待ったほうがよさそうです。
消費電力について書くのを忘れていました。今までのマシンはアイドル時で100w程度でまあ優秀なほうだと思っていましたが、ニューマシンはアイドル時に60wという驚異的な省電力性を示しました。この数字だと仮に24時間稼働させると1年で5000円程度違ってきます。古くて消費電力の高いサーバーはそろそろ替え時が来たようです。
今までメインに使っていたのは、Core 2 Duo E8500で、もう4年ぐらい使ったでしょうか。だいたい同時期に作った自宅のパソコンは半年前に壊れて、E-350のネットトップ系のパソコンでしのいでいますが、さすがに仕事でメインに使うパソコンは、それなりのスピードがほしいので、最新のIntel Ivy Bridgeで作ることにしました。
スペックの概略は、CPU Core i-5 3550、Mother ASUS P8Z77-V、Ram 8GB、OS Win7 64Bit、SSD 60GB、HDD 2TB、GPU AMD Radeon HD 7700です。SSDはインテルスマートレスポンステクノロジーに全域使用してHDDのキャッシュとして使っています。
内臓IGPで外付けGPUをアクセラレーションしようとLucidLogix Virtu MVPしたのですが、これを使うと弥生販売がどうしても動かないのであきらめました。別に、3Dゲームをするわけではないのでこだわりもないので、原因追求はしていません。
CrystalMarkのベンチマークは、Mark 304318 で、当然、今までのPCと比べて最速でした。ちなみに今まで使っていたCore 2 Duoとサーバーとして使っているCore i7 860と比較すると以下のとおりです。
CPU |
Core i5 3550 |
Core2Duo E8400 |
Core i7
860
|
Mark | 304318 | 104820 | 176897 |
ALU | 79858 | 29545 | 51318 |
FPU | 65153 | 26874 | 47946 |
MEM | 61087 | 16301 | 41585 |
HDD | 43363 | 10745 | 10872 |
GDI | 10826 | 11124 | 8878 |
D2D | 3761 | 8839 | 3026 |
OGL | 40270 | 1392 | 13272 |
CPUやMEMが順当に上がっているのと、HDDが大幅に上がっています。SSDによるキャッシュはかなり効果があるようです。実際、ログイン画面までの起動時間は今までの半分程度の30秒で、いろいろな場面の体感速度も上がりました。特にVisual Studioの反応性が上がったのは非常にうれしいです。ユーザーコントロールのデザイン画面を開くと今までのマシン、特にE-350ではフリーズしたかと思うぐらい反応性が悪かったのが、すっと開くようになったので生産性が上がりました。
デスクトップとしては申し分ありませんが、ためしにWindows 2008R2 をインストールしてみたのですが、ドライバやユーティリティの対応が悪く、安定稼働しませんでした。このマシンに搭載されているNIC Intel 82579Vのドライバは、なんとデスクトップ専用で、そのままではサーバーとして使えませんでした。ただ、ドライバーインストール画面で、<互換性のあるハードウェアを表示>をオフにして、Intel 82579LMを選択すると、一応動作しました。
調子よければこのマザーボードをもう一枚買ってサーバーもリプレイスしようかと思っていましたが当てが外れました。サーバー用のIbyBridgeのマザーがもうすこし増えるのを待ったほうがよさそうです。
消費電力について書くのを忘れていました。今までのマシンはアイドル時で100w程度でまあ優秀なほうだと思っていましたが、ニューマシンはアイドル時に60wという驚異的な省電力性を示しました。この数字だと仮に24時間稼働させると1年で5000円程度違ってきます。古くて消費電力の高いサーバーはそろそろ替え時が来たようです。
2012年5月15日 火曜日
IEnumerableとForEach拡張メソッド
久しぶりの更新です。
またまた動物病院とは関係のない話です。
C#のコーディングについての覚書です。
顧客管理ソフトを自作した話は、前に少しふれましたが、一応動くものは昨年末に出来上がりましたが、それから半年ぐらいたった今でも、ちょこちょこコードをいじってバグとりやら新機能を加えたりしてます。
ふつう一人で書いたコードは一貫性があるものですが、C#4.0での初めての本格プログラムだったので、手さぐりしながら書いたこともあり、最初のほうのコードと現時点で書いているコードの質が随分と違ってしまいました。
とくに、ラムダ式とかLINQなんかは、徐々に使い方にも慣れてきてだいぶ効率よく書けるようになりました。
そんな中で、これはやってはいけないというクエリーを大量に書いていることに気が付きました。
それは、IEnumerableのシーケンスの各要素にループ操作を行う時、一旦ToList()してインスタンス化してから処理していたことです。
以下のメソッドAとBを見てください
public static int A()
{
int ret=0;
Enumerable.Range(0, 1000).ToList().ForEach(r => ret += r);
return ret;
}
public static int B()
{
int ret = 0;
IEnumerable<int> TestData = Enumerable.Range(0, 1000);
foreach (int r in TestData)
ret += r;
return ret;
}
AとBで各要素に対する処理は同じですが、Aのほうが行数が少なく、変数宣言がない分、ソースがすっきりします。BもTestDataを省いて1行減らすことはもちろん可能ですが、クエリは非常に長くなることが多いので、foreachステートメント中にクエリの塊を一気に書くことは可読性を著しく下げます。Aなら改行するだけで可読性を維持できます。
差はないのならよみやすいほうがよいと思って、A()の書き方をLINQを使い始めてからずっとしていました。
ところがです。ベンチマークを取ったところ、AはBの2倍ぐらい時間を食っていました。リスト化は結構重たい処理で、これではLINQを使うことでかえってパフォーマンスを落としてしまいました。
しかしです。Effective C# 4.0を読みかえして重要なことを読み流していたことに気が付きました。それは、IEnumerbleに拡張メソッドとしてForAll<T>を加えようということです。僕は、ForEachのほうがしっくりと思うので、ForAllからForEachにメソッド名を直して、以下の拡張メソッドを自分のライブラリー内の静的クラスに加えました。
public static void ForEach<T>(this IEnumerable<T>
foreach (T item in sequence)
action(item);
}
そうしますとあら不思議、Aメソッドは次のA2メソッドに改変できます。
public static int A2()
{
int ret = 0;
Enumerable.Range(0, 1000).ForEach(r => ret += r);
return ret;
}
ベンチマークもBとA2では誤差範囲の違いしかなく、圧倒的に楽して書けます。これはぬかったと思いました。AからBへ直すべきと思いながらも、めんどくさくてほかっておいたのですが、AからA2へはソリューション全体にToList().ForEach()から、ForEach()への全置換を実行するだけで終了しました。
IEnumerableというかLINQはそれ自体拡張メソッドの塊ですが、使い勝手を良くするためにさらなる拡張メソッドを自作するというのは発想の転換ですね。これでforeachステートメントをつかうことはほとんどなくなりそうですし、この考え方を利用すると、さらにコードの質を高めれそうです。
またまた動物病院とは関係のない話です。
C#のコーディングについての覚書です。
顧客管理ソフトを自作した話は、前に少しふれましたが、一応動くものは昨年末に出来上がりましたが、それから半年ぐらいたった今でも、ちょこちょこコードをいじってバグとりやら新機能を加えたりしてます。
ふつう一人で書いたコードは一貫性があるものですが、C#4.0での初めての本格プログラムだったので、手さぐりしながら書いたこともあり、最初のほうのコードと現時点で書いているコードの質が随分と違ってしまいました。
とくに、ラムダ式とかLINQなんかは、徐々に使い方にも慣れてきてだいぶ効率よく書けるようになりました。
そんな中で、これはやってはいけないというクエリーを大量に書いていることに気が付きました。
それは、IEnumerableのシーケンスの各要素にループ操作を行う時、一旦ToList()してインスタンス化してから処理していたことです。
以下のメソッドAとBを見てください
public static int A()
{
int ret=0;
Enumerable.Range(0, 1000).ToList().ForEach(r => ret += r);
return ret;
}
public static int B()
{
int ret = 0;
IEnumerable<int> TestData = Enumerable.Range(0, 1000);
foreach (int r in TestData)
ret += r;
return ret;
}
AとBで各要素に対する処理は同じですが、Aのほうが行数が少なく、変数宣言がない分、ソースがすっきりします。BもTestDataを省いて1行減らすことはもちろん可能ですが、クエリは非常に長くなることが多いので、foreachステートメント中にクエリの塊を一気に書くことは可読性を著しく下げます。Aなら改行するだけで可読性を維持できます。
差はないのならよみやすいほうがよいと思って、A()の書き方をLINQを使い始めてからずっとしていました。
ところがです。ベンチマークを取ったところ、AはBの2倍ぐらい時間を食っていました。リスト化は結構重たい処理で、これではLINQを使うことでかえってパフォーマンスを落としてしまいました。
しかしです。Effective C# 4.0を読みかえして重要なことを読み流していたことに気が付きました。それは、IEnumerbleに拡張メソッドとしてForAll<T>を加えようということです。僕は、ForEachのほうがしっくりと思うので、ForAllからForEachにメソッド名を直して、以下の拡張メソッドを自分のライブラリー内の静的クラスに加えました。
public static void ForEach<T>(this IEnumerable<T>
sequence, Action<T> action)
{foreach (T item in sequence)
action(item);
}
そうしますとあら不思議、Aメソッドは次のA2メソッドに改変できます。
public static int A2()
{
int ret = 0;
Enumerable.Range(0, 1000).ForEach(r => ret += r);
return ret;
}
ベンチマークもBとA2では誤差範囲の違いしかなく、圧倒的に楽して書けます。これはぬかったと思いました。AからBへ直すべきと思いながらも、めんどくさくてほかっておいたのですが、AからA2へはソリューション全体にToList().ForEach()から、ForEach()への全置換を実行するだけで終了しました。
IEnumerableというかLINQはそれ自体拡張メソッドの塊ですが、使い勝手を良くするためにさらなる拡張メソッドを自作するというのは発想の転換ですね。これでforeachステートメントをつかうことはほとんどなくなりそうですし、この考え方を利用すると、さらにコードの質を高めれそうです。
2012年4月16日 月曜日
FC岐阜 第8節 ギラヴァンツ北九州戦
今回も、動物病院とは関係のないオフの話です。
昨日は、今年初めてFC岐阜のサッカー観戦に出かけました。
毎年、必ずホーム開幕戦は観戦に行っていたのですが、天気に恵まれず、その後もかんなが風邪を引いて下痢と嘔吐していたりしたので、やっと、第8節にて観戦することができました。
子供のいないときは、雨でも応援に行っていたのですが、今はさすがに自粛しています。長良川競技場はそれなりにいい球場だと思うのですが、せめてメインスタンド側だけでも完全に雨が入らないようにしてくれたらなあ。国体に合わせて改装したので、その点が直るのかと期待していたのですが、屋根は小さいままでした。
途中の東海北陸自動車道の関SAにて、愛車の初代プリウスが100000万キロを迎えました。もう10年以上も乗っていますが、昨今のガソリン高を考えると、十分もとをとった気がします。新しいプリウスに乗り換えることも検討しましたが、今はクラシックカーといえるぐらいまで乗り続けてもいいかな、という気がしています。
関SAは最近新しくなって、ドッグランが開設されていました。ペットと旅行に出かける人が増えたんだなあと実感。どの子も元気よく走っていました。こういう施設をうまく利用すれば、犬と長距離旅行も可能ですね。ただ、こういうところに行く場合は、ワクチン接種は当たり前ですが、ノミダニ予防のフロントラインプラスも処置してから行きましょう...と、すこしだけ、獣医らしいことを書いてみました。
さて、今年初めての長良川競技場。ちょっと屋台が減ったみたいでさみしいです。
屋台の充実度が、唯一お隣のグランパスの豊田スタジアムに勝っている点なので、屋台がもっと盛り上がるように、観客がもっと増えてほしいです。試合開始1時間前に行けば駐車場も空いてますから、美濃加茂市や可児市などわが中濃地方からも、もっと観戦に出かけましょう。一度でもスタジアムの雰囲気に触れれば、きっとまた見に行きたくなります。
なぜか、岐阜サポと北九州サポが、仲良く酒盛りして盛り上がっていました。こういうまったりな感じがJ2ぽくて好きです。子供と安心して観戦できます。
FC岐阜ホームページ 試合結果
昨日は、今年初めてFC岐阜のサッカー観戦に出かけました。
毎年、必ずホーム開幕戦は観戦に行っていたのですが、天気に恵まれず、その後もかんなが風邪を引いて下痢と嘔吐していたりしたので、やっと、第8節にて観戦することができました。
子供のいないときは、雨でも応援に行っていたのですが、今はさすがに自粛しています。長良川競技場はそれなりにいい球場だと思うのですが、せめてメインスタンド側だけでも完全に雨が入らないようにしてくれたらなあ。国体に合わせて改装したので、その点が直るのかと期待していたのですが、屋根は小さいままでした。
途中の東海北陸自動車道の関SAにて、愛車の初代プリウスが100000万キロを迎えました。もう10年以上も乗っていますが、昨今のガソリン高を考えると、十分もとをとった気がします。新しいプリウスに乗り換えることも検討しましたが、今はクラシックカーといえるぐらいまで乗り続けてもいいかな、という気がしています。
屋台の充実度が、唯一お隣のグランパスの豊田スタジアムに勝っている点なので、屋台がもっと盛り上がるように、観客がもっと増えてほしいです。試合開始1時間前に行けば駐車場も空いてますから、美濃加茂市や可児市などわが中濃地方からも、もっと観戦に出かけましょう。一度でもスタジアムの雰囲気に触れれば、きっとまた見に行きたくなります。
なぜか、岐阜サポと北九州サポが、仲良く酒盛りして盛り上がっていました。こういうまったりな感じがJ2ぽくて好きです。子供と安心して観戦できます。
いつもはかわいらしい服しか着てくれないかんなも、みんなが緑の服を着ているのを見たせいか、ユニフォームを着てくれました。去年はがんとして着ようとしなかったのに、周りを少しは気にする年頃になったのでしょうか。やっとユニフォームが日の目を見ました。
さて、試合のほうですが、最初からFC岐阜が押し気味でしたが、北九州もカウンターで応戦し、両者とも決めきれずに前半終了。
後半早い時間帯に廣田選手がプロ入り初のメモリアルゴールを決めて、最後は北九州の怒涛の反撃に耐えきって今季初勝利!サポーター陣の盛り上がりもいつもの勝利以上でした。
ゴールを決めた廣田選手がMVPでしたが、李漢宰選手と服部選手の動きが非常に良かったですね。危ない時にはいつも服部選手がケアしていたし、攻撃の起点として李漢宰選手がゲームをコントロールしているように思えました。
こういう面白い試合を続けて、勝利を積み上げて、少しでも観客が増えてくることを祈ります。
さて、試合のほうですが、最初からFC岐阜が押し気味でしたが、北九州もカウンターで応戦し、両者とも決めきれずに前半終了。
後半早い時間帯に廣田選手がプロ入り初のメモリアルゴールを決めて、最後は北九州の怒涛の反撃に耐えきって今季初勝利!サポーター陣の盛り上がりもいつもの勝利以上でした。
ゴールを決めた廣田選手がMVPでしたが、李漢宰選手と服部選手の動きが非常に良かったですね。危ない時にはいつも服部選手がケアしていたし、攻撃の起点として李漢宰選手がゲームをコントロールしているように思えました。
こういう面白い試合を続けて、勝利を積み上げて、少しでも観客が増えてくることを祈ります。
FC岐阜ホームページ 試合結果