平々毎々 (Hey hey, My my)

rock and roll can never die.

月別アーカイブ: 4月 2007

ベーコンほうれん草スパゲティ

にんにくと厚切りベーコンをオリーブオイルで炒め、ほうれん草とカルピスバターを足し、醤油で風味づけ。スパゲティは早めに茹で上げ、茹で汁(お玉で1~2すくい)を入れ、乳化したら麺にからめて熱いうちに食べる。


よく作るスパゲティだけどいつもより美味かった。

広告

ドラマ「めぞん一刻」

「欲求が不満している」つながりで。(分かりにくいネタ振りですまん)
5/12の夜9時放送だそうで。配役について。

  • 伊東美咲は特に気にならない。演技は好きじゃないけど、まあいいんじゃないの?
  • 五代くんはもっと冴えない顔しててほしいところだ。
  • 岸辺一徳はかなりいい所をついてきた。あのねちっこさ!
  • 高橋由美子が朱美さん役を演じるようになったんだなあ。特にファンではなかったが思うところはある
  • 一の瀬さんは岸本加世子。どこまで下世話にできるか。
  • 沢村一樹。笑いがこみ上げる。ある意味ナイス。
  • 榮倉菜々はかわいいのでOK。

つーか、マンガの忠実なドラマ化では2時間に収まるわけないから、マンガやアニメのファンは「原作と違う!」とかブーたれないほうがいいと思った。

映画「バベル」を観てきた

連休中にMOVIX宇都宮で「バベル」を観た。
世界には生と死とコミュニケーション不全が満ちていることを思い出させる。考えさせられるいい映画だった。(きっとディパーテッドより断然こっちが好きだな、ディパーテッドもインファナルアフェアも観てないけど。)
義母は「各国の話がもっと有機的につながってくるのかと思っていた」と言っていたけど、「一発の銃弾が、モロッコ、メキシコ、日本を撃ち抜く」みたいな煽り宣伝が間違い。つなげることは主眼ではないようだから映画としてはまったく問題ないと思う。
イニャリトゥ監督のことは良く知らない(アモーレス・ペロス観てないし)けど、世界の見つめ方がすごいなと思った。モロッコパートでもメキシコパートでも心を強く揺さぶられた。日本パートだけ取り出してもすごい。なんと言うか「外国人から見た日本」みたいな切り取り方はまったくなかった。日本そのものだったと思う。(菊池凛子演じる女子高生は欲求が不満しているけど、コミュニケーション欲求なんだな。)

余談だが、あのペントハウスが佃のdankogai宅なんだね。さすがにいい所に住んでいらっしゃる。

Day 3: ReSharperサバイバルガイド、あるいは、僕のキーバインドを知りませんか?

元記事

31日間ReSharper一周」の3日目にようこそ。(これ実は土曜日分なんだけど、僕は土曜日に外出するから、金曜の晩に投稿している。)

ReSharperは最高だ。だけどもし使うつもりなら――特にバージョン2.5.x(この時点での最新版)なら――まずこのサバイバルガイドを読んでおく必要がある。

というのも、Visual Studioにはキーボードショートカットがたくさんある。ReSharperはそれをかなり変えてしまう。だから、変わったのは何で、どう対処したらいいのかを知っておかないといけない。

ReSharper 2.0は有無を言わさずキーバインドを差し替えるだけだった。ReSharper 2.5はご丁寧にも、あるキーストロークを最初に使おうとした時に、個々のキーバインドを差し替えていいかどうか聞いてくる……んだけど、前に戻って回答を訂正する方法がない――これでは余計にたちが悪い。ReSharperで最高の機能を呼び出せなくなってしまうかもしれないからだ。

だから、ReSharperを使い始める前にキーバインドのサバイバルガイドが必要なんだ。以下に記す。

ReSharperのばか丁寧な機能を切り抜ける

実は、2点にだけ注意すればいい。1つはよく使うショートカットの変更で、これは少ししかないから下で説明する。もう1つは、ReSharperショートカットの衝突ダイアログだ。

上で書いたように、ReSharperは既存のショートカットを置き換えていいか、ばか丁寧に聞いてくる。問題はショートカットを最初に使おうとしたときに聞いてくることで、そういうときって言うのは実際に何かしようとしている最中なわけだから、くだらない質問に答えてる場合じゃない。しかもどういう答えをしたとしてもアンドゥができないし、置き換えてしまったキーの代わりにどのキーを使えばいいのかも教えてくれないもんだから、その後に待っているのはかなり最悪のユーザー体験だ。

(誤解しないでほしいんだけど、ReSharperは最高の道具だ。使い始めるときにはこのダイアログボックスを通過しないといけないってだけだ。)

僕の経験にそって言えば、ReSharperのショートカットは全部受け入れるのが吉だ。そうすれば、変更された新しいショートカットに慣れてもいいし、我慢ならないとこについては元に戻してもいい。しかもReSharperがもうアホなダイアログボックスを出して邪魔するのをやめさせる事になる。

てなわけで、ReSharperをインストールしたら、ソリューションを開いて、どこかの引数リストにカーソルを持ってきて、Ctrl+Shift+Spaceを押すといいと思う。そしたら"ReSharperショートカットの衝突"ダイアログがポップアップする。

設定は「ReSharperのショートカットを使う」のままで、「ReSharperショートカットの全部に適用する」のチェックボックスにチェックを入れて、OKを押す。

はいこれで困難を1つ乗り切った。ダイアログにはもう邪魔されない。

後は、変更されたキーストロークを学ぶだけでいい。

変更されたキーバインド パートI: よく使うキー

僕が調べたから君たちは調べなくていいよ。もっとも必要になるキーストロークは以下だ:

  • Ctrl+Shift+Spaceではもう引数情報を表示できない。代わりにCtrl+P(ReSharperの強化された引数情報)を使おう。そっちのほうがいい――特にSystem.Drawingにおけるオーバーロードの暗黒面に直面してるときは。
    • Ctrl+Shift+SpaceはCtrl+Spaceの亜種になってる。これについては今月中に後で説明する。Ctrl+Space一族を説明するときにね。
  • F12(定義に移動)とCtrl+F12(宣言に移動)(結局何が違うの?)はCtrl+Bに置き換わった。Ctrl+クリックを使うこともできる。
  • Shift+F12(すべての参照の検索)はAlt+F7(使用箇所の検索)になった。通常は、代替ショートカットは元のより良くなってるんだけど……明らかにこれは違う。正直言って、F7はどうなんだ?
    • F12とShift+F12でドキュメント中のエラーおよび警告を一つずつ前進・後退するようになった。
  • 一時マクロを記録するCtrl+Shift+Rと、それを再生するCtrl+Shift+Pはもう使えない。これは痛い。Ctrl+Alt+Shift+Rとかでいいから残しておいてほしかった。
    • Ctrl+Shift+Pは「パラメータ情報――前のシグネチャへ移動」だ。
    • Ctrl+Shift+Rは「リファクタする」で、このことが、マクロを記録するキーストロークがなくなったにもかかわらずそこまで動揺してない主な理由だ。マクロよりずっと使いでがある。ほんとだよ。

パートII: 他に注意すべき変化

多くの人が毎日使うものではないけど、それでも重要だから注意すべきことがらは以下だ:

  • Ctrl+キーというプリフィックスのいくつか(Ctrl+B、Ctrl+D、Ctrl+E、Ctrl+F1、Ctrl+W)はもうプリフィックスではなく、独自の機能を持ったコマンドだ。たとえば、Ctrl+B、Ctrl+Cはブックマークの削除に使われていた。でも今はCtrl+Bは「宣言へ移動」だから、Ctrl+Bで始まる複数キーのコマンドはもう利用できない。Visual Studioにはこれらの多くに対してすでに代替キーストロークが用意されている(例えば、Ctrl+Bコマンドの多くは、Ctrl+Kで使うこともできる)し、ごく一部についてはReSharper独自の代替キーストロークが追加されている。
    • Ctrl+Bは、「宣言へ移動」だ。
    • Ctrl+Dは、「テキストの複製」だ。
    • Ctrl+Eは、「最近使用したファイルへ移動」だ。
    • Ctrl+F1は、「ヘルプ―操作方法」だ(以前はCtrl+F1、Hだった)。
    • Ctrl+Wは、「単語を選択/選択範囲の拡張」だ。
  • もしCtrl+Alt+Downを使ってMDIリストを表示していた(ドキュメント領域の右上で下矢印をクリックすることと同じ)としても、そのキーストロークはもう使えない。
    • Ctrl+Alt+UpおよびCtrl+Alt+Downは、「前の項目に移動」と「次の項目に移動」だ。
  • 検索コンボボックスに移動するCtrl+/ (使ってた人なんているのか?)はもうない。Ctrl+Dなら表示されるが、エディタウィンドウにフォーカスがないときだけしか使えない。
    • Ctrl+/は、「選択範囲をコメントアウト/コメント解除」だ。
  • F7 (「コードを表示」) と Shift+F7 (「デザイナを表示」) は、F7だけで両者を切り替えられるようになった。イェイ!
  • F6はもうソリューションのビルドじゃない。代わりにCtrl+Shift+Bを使うこと。

上記は簡略版リストだ。ReSharperをインストールすると変更される全キーバインドの完全版リストも作っておいた。このリストには変更・削除されたものしか載せていないので、新規に追加されたものは載っていない。だけどリストは長くなった。でももし前は動いていたのに今はおかしくなってしまったキーストロークがあるなら、完全版リストをチェックしてほしい。(注意。僕はCtrl+Shift+Tをテスト実行に割り当てていた。Visual Studioのデフォルトでは別のものに割り当てられていると思う。「単語の入れ替え」か何かそういう変なのに。)

What’s good enough for you is good enough for me. It’s good enough.

久しぶりにグーニーズを観たいなあ。連休にビデオ借りるか。

チケット取れなかった

e+(イープラス)をご利用いただきまして、誠にありがとうございます。
猪股健太郎様の下記申込みについては、抽選の結果、チケットを
ご用意することができませんでした。

公演名   : 筋肉少女帯VSすかんち
会場名   : 渋谷C.C.Lemonホール

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
これからもe+をよろしくお願いします。

orz

Day 2: カラー・バーと緑の小箱

元記事

31日間ReSharper一周」の2日目にようこそ。

さて、1日目には灰色について話した。ReSharperをインストールして次に気付くのはカラーバーだ。

ソースファイルを編集しているときは、垂直スクロールバーの隣には常にカラーバーが出てくる。先端には小さな箱があり、緑だったり黄色だったり赤だったりする。ReSharperのドキュメントでは、これらを総称して「マーカーバー」と呼んでいる。

灰色を含んだコード行であれば、ReSharperが小さな黄色い目盛りマークを表示する。コンパイルエラーを含んだコード行であれば、ReSharperが赤い目盛りマークを表示する。こいつらの区切り間隔はバー全体に比例している(カラーバーはスクロールせず、その高さがソースファイル全体を表している)。だから、ソースファイルの行数が多いほど、目盛りマークの区切り間隔はより近くなるだろう。

先端に小さな箱があるのは、ファイル全体の状態がすぐわかるようにだ。ソースファイルに1つでもコンパイルエラー(カラーバーにおける赤の目盛り)があれば、箱は赤い。エラーは全くないけれど、ReSharperの警告(カラーバーにおける黄色い目盛り)があるなら、箱は黄色い。このゲームの目的は、箱を緑色にすることだ。

もちろん、これはきれいな色ってだけにとどまるものではない。ReSharperはコーディングの手助けのためのものなわけで、つまりそういうことだ。目盛りマークの上にマウスカーソルを乗せれば、問題点を説明するヒントを見ることができる。また、目盛りマークをクリックすれば、問題のコード行にカーソルを動かすことができる。

もっといいのは、F12を押せばファイル中の次の問題点に移動する(Shift+F12で前の問題点に戻る)。

この機能が唯一ダメなのは、ファイル単位だってことだ。プロジェクト(またはソリューション)全体が緑の箱かどうか簡単に確認する方法はない。そして、すぐにでもその機能が欲しいと思うことになる!

ヒント: ソリューションエクスプローラでは複数選択できる。だからまず、プロジェクトの最初のソースファイルをクリックし、次に、最後のをShiftクリックし、Enterを押す。こうすれば個別のタブつきで、すべてのファイルをエディタで開くことができる。そして、カラーボックスをチェックしながらファイルを(Ctrl+F4で)閉じていこう。緑色でないものに出くわしたら、さあ仕事の時間だ。

Day 1: 灰色と赤と波下線

元記事

31日間ReSharper一周」の1番目へようこそ。最初の数回では、開封直後に経験することの概要を説明する。インストール後に最初に気付くことだ。

最初の2日間は光りものについてだ。そして3日目は重要で、「ReSharperサバイバルガイド、あるいは、僕のキーバインドを知りませんか?」だ。その後は光りものに戻る。

さて、君は今まさにReSharperをインストールし終わって、Visual Studioでソリューションを開いたところだ。たぶん君が最初に気づくのは全部、灰色の所だろう。

ReSharperには赤と波線もあるけど、たぶんその時点ではそれらを見てないだろう。でもすごいぞ。コーディングを始めれば嫌でも見る。

最初に見るのは灰色だけど、まずは波線と赤について説明しよう。灰色は最後にする。そっちの方がすごいからだ。

最初の数日間はReSharperの概要でしかないから、何度も「後で説明する」って言うと思う。今のところは、最初に見るものの様子を伝えようとしているんで、徹底的なガイドブックではない。ディープなとこは後で。

赤と波線: リアルタイムなコンパイルエラー

コンパイルできないコードがあれば、ReSharperは赤、または波下線でそれを示す。

「はいはい、スゴススゴス」って思うかな。「波線はVisual Studioにもあるぞヴォケ。」まあね。でも、Visual Studioはコンパイル後にしか波線を出さない。ReSharperはリアルタイムで、つまり文字を打つだけでコンパイルエラーを指摘する。この魔法は完全にバックグラウンドで動く。

エラーメッセージを見るには、マウスを赤または波下線の上に動かせばいい(ツールチップが表示される)。それか、カーソルキーを使ってカーソルを赤または波下線のところに置く(エラーは、ステータスバーに表示される)。

赤と波下線の違い: 赤は識別子――クラス名、メソッド名、変数名など――が見つからないときだけだ。その他全部のコンパイルエラーは波下線で示される。識別子だけ表示法が違うのは、ReSharperにはそれらを修正する専用の機能があるからだ。

赤については後の記事で扱う。すばらしい十徳ナイフであるAlt+Enterについての記事だ。

灰色: 死にコードを見つける

2、3年前、僕らのコードベースには一度も使われなかった関数がいっぱいあった。でも、「いつか使うかもしれない」ので削除できずにいた。まるっと使われなかった部分もあった。コメントアウトしたコードもあったが、何年もコメントアウトされたままで、消すのが怖かった。

僕らはもうYAGNI原則ヲ抱擁シテいる――未使用のコードを見つけたら有無を言わさず削除するという意味で。僕らがReSharperの「灰色」機能(ドキュメントには「警告」と書いてあるけど)が好きな理由だ。

ReSharperは必要でないコードを見つけ、灰色で表示する。

実際には不要な名前空間の”using”。使わない変数。使わない引数。未使用のプライベートメソッド、プロパティ、フィールド。不要な限定子(“this”とか”Some.Namespace”とか)。書き換えたあと一度も読み出されない変数。継承元を呼ぶだけのオーバーライド。すべてが灰色になり、たぶん安全に削除できる。しかもね、繰り返すけど、リアルタイムに表示されるんだ。

もちろんルールは設定可能だ。会社のコーディング規約で「this」を使わないといけないのなら、ReSharperのその警告を無効にできる。オプション設定はReSharperメニュー > Options > Highlighting にある。

また、ReSharperには、警告部分を修正するのを助けるツールがある。修正機能の大部分は2ストロークキーで、片方はEnterだ。もう一度言うけど、今月中に後で扱う。その時はソリューションエクスプローラーでのCtrl+Alt+F、Alt+Enter、そしてコンテキストメニューを取り上げる。

この機能をさらに進めて、使わないものを全部明示してほしいと思う人もいるかもしれない――たとえpublicであったとしても、ソリューションのどこからも使われていないのであれば灰色にしてほしいと。(もちろん、それは全員のための機能ではないだろう。ライブラリ開発者はそんな機能はいらないだろうし。僕らは商用アプリケーションを開発するんで、とても気に入るかも。)悲しいかな、自動的にこれをする方法はない。哀れみたまえ。(近い機能ならある。安全な削除だ。その通り、今月中に後で扱う。)

色つきコーディングには驚くほど速く慣れてしまう。今となっては、僕らがDelphiで開発していて、引数が使われてないのに気付いたときは、ふざけるだろうね。「あ、灰色だ。じゃあ早速Alt+Enterをたたいて……」

Day 0: 基礎とインストール

元記事

「31日間ReSharper一周」にどっぷり進む前に言っとくけど、僕は退屈だけど書かなきゃならないことを書いている。1日目まで飛ばして構わない(ReSharperをインストールするのなら、ざっと目を通すぐらいはしたいかもしれないけど)。

IDEとバージョン

ReSharperの最新版はVisual Studio 2005でしか動かない。Visual Studio 2003で動く旧バージョンがまだ手に入るけど、超すごい機能を全部持ってるわけではない。

これを書いている時点では、ReSharperの最新版(つい1週間前に出た)は2.5.1だった。2.5にあった小さいバグがいくつか修正されたので、書くネタが予定より少なくなってしまった。いくつかの困った点をどう回避するかに関して話すつもりだったから。逆に、2.5では動いたんだけど2.5.1ではぶっ壊れていることがらもちょっとある(もうフィードバックしてある)。

インストールに関して知るべきこと

警告: ReSharperを初めてインストールするときに、Visual Studio Hotfixをインストールするように言われるが、これには「永久の眠りか!」ってぐらい時間がかかる。仕事PCにインストールしたのは結構前だから、どれくらいかかったのか覚えてない。でも最近家のノートPCにインストールした時には(冗談抜きで)4時間以上かかった。そりゃあ僕の家のノートPCは850MHzでメモリは256MBにすぎない。でもそうは言っても4時間だぜ。推して知るべし。

(もちろん、ReSharperにはインストール時間分の価値はある。でも退社する15分前にインストールを始めたいかもしれない。そんな時には「すべてYes」をクリックして家に帰ることができる。翌朝にはReSharperのインストール準備が完了しているだろう。)

ヘルプをインストールする(もしくは、しない)

ReSharperのインストールウィザードは、ヘルプをインストールするか尋ねてくる。MSDNヘルプ全体のインデックスを再構築しなければならないから時間がかかるよと言われる。

冗談抜きで長くかかるぞ。たぶんインストールには30分かそこらかかる(しかも、パワフルな仕事用PCでの計測だ。CPUは3GHzでメモリは2GB積んであった)。

でも……理解できない。ReSharperのダイアログはどれにもヘルプボタンがないし、F1キーにも反応しない。Visual Studio からヘルプを起動してみても、ReSharperのヘルプトピックはまったく見つからなかった。いったい何のヘルプをインストールしてんの?!

だから、少なくともReSharper2.5.1に関して、ヘルプをインストールするためのチェックボックスにチェックしないことを勧める。意味があるとは思えないから。

公式サイトにあるもの

サポートはかなり反応がいい。これらの記事を書いていたときに僕は何度か、「うーん、ReSharperであれとかこれとかができたならもっとすごいのに……」と書きたくなった。でもそのたび僕は筆を置いて公式サイトに行き、バグレポートや機能向上の要求を送った。反応は本当にいい――いつもはだいたい数時間以内に返事がある。もし「その件についてはリストに追加しておきます」という返事であっても、レスポンスが素早いのは良いことだ。

この前なんか、1、2か月前なんだけど、もらった返事は「その機能を追加しました。今週後半に出すアップデートに含まれています。」だった。たぶん僕が言う前から既に追加されてたんだとは思うが、それでも、ある会社がバグレポートと機能要求に関してそのぐらいの対応をしようとするなんて、かなり凄いこと(そして、めったにないこと)だ。

31日間ReSharper一周