My Daily Programming Life...

ViEmuでCtrl+CやCtrl+Vを有効にする

Visual StudioでViと同様のキー操作を可能にするためのツールにViEmuがある。これを使うとほとんどViと同様の操作でテキスト編集ができるため、Viを普段使っている人にはとっても便利。

ただし、デフォルトだとCtrl+CやCtrl+VはViのキーバインドではなく、標準のコピー、ペーストになっている。
Ctrl+Cやコマンドキャンセル、Ctrl+Vはブロック選択なので、使いたい人は使いたいだろう。

実は、これらを有効に(つまりViと同様のキーに)するのは簡単。

Visual Studioのメニュー
「ツール」→「オプション」と選択し、ダイアログで
「ViEmu - General」のタブを開く。「Keyboard...」を選択し以下の画面へ。





重要なのは右下の「Key scanned, with Ctrl...」とあるテキストボックス。
ViEmuはここにある文字とCtrlの組み合わせが、VisualStudioとViとぶつかるかどうかをスキャンする。

たとえば、このテキストボックスに「C」とある場合、ViEmuは「Ctrl+C」がVisualStudioとViとで衝突が起きるかどうかを検出する。逆にこのテキストボックスに「C」がなければViEmuはそれについては何もしない。つまりVisual Studio標準のままにする。

デフォルトでは、このテキストボックス内にはVとCは含まれない。つまり、そのまま放置しているということだ。

というわけで、この中にCとVの文字を上の画像のように入れる。そして「Apply」キーを押す。

ただし、これだけではViEmuはまだこのキーバインドを入れ替えない。
このダイアログボックスの右上のリストには、衝突が検出されたもののリストがある。

これを置き換えたい(つまり、Viのキーバインドにしたい)場合には、その下にある「Save and Remove」を押す。

これで、完了。


このダイアログのなかのリストとボタンの関係は、若干直観的ではない。理解するまでにちょっと時間がかいかる。
とりあえず、Ctrl+VやCtrl+Cを有効に(Viと同じに)したければ上のことだけやればよい

Windows 7でSMBサーバにつながらないとき

Windows 7から、Linuxで動作しているSMBサーバにつなげようとしたらつながらないという問題に遭遇した。
Windows XPとかならちゃんと見える。

いろいろ調べた結果よくわからないけど、以下のような解決方法

http://www.tomshardware.com/forum/75-63-windows-samba-issue



Control Panel - Administrative Tools - Local Security Policy

Local Policies - Security Options



Network security: LAN Manager authentication level
Send LM & NTLM responses

Minimum session security for NTLM SSP
Disable Require 128-bit encryption



とりあえず、これでつながるようにはなった。セキュリティ上問題があるかどうかは知らないけど。

たまには頭を

最近はあんまり理系っぽいことしていないなぁということで、数学の問題に挑戦しようと考えた。

大学入試問題なんて解けるかなぁと思って今年の東工大の入試を見てみた。
で一番取っつきやすそうなやつを選んで解いた。これ。
http://www.j3e.info/ojyuken/math/php.php?name=titech&v1=1&v2=2010&v3=1&v4=3&y=2010&n=3

きっと、途中で分からなくなって終わるんだろうなぁと思ったら、20分程度で解答できた。答え見たらあってた・・・。

あれ?こんなに簡単だったっけ?入試・・・。もっと苦労した覚えがあるんだけど。これが特別なのかな。

んー、それにしてもさすがにこの問題はサービス問題すぎる気がする。

久しぶりの授業

今日は会社から早めに帰れたので受講。
この前見つけたアルゴリズムのやつ



うーん、すばらしい。勢い余って線形代数も受講



これまたすばらしい。英語なのに大学の時に受けた授業より分かりやすいってどういうことだ。まあ、まだ簡単な内容だからかもしれないけど。

これからも続けて受けていきたい。

MacでHHKBキーボード

iPadの購入を機に、ちょっと昔買ったMac Miniをいじっている。
キーボードはHHKBなんだけど、なんか接続すると英文字列入力時に配列がAsciiになってしまう。
Shift + 2が@になる感じ。
僕はずっと日本語キーボード配列だから、そうしたい。
でもなんだかぜんぜん設定いじってもできず、かれこれ数ヶ月放置していた。

んで今回、またチャレンジ。
http://plus-alpha-space.cocolog-nifty.com/blog/2009/12/windowsjisleopa.html
ありました。やりかた。
ただ、・・・なんでこんなに難しいことしなきゃいけないのって感じはするけど。

しょうがない。やりました。慣れないファイルシステムやらなんやらで、とにかく時間がかかった。
(Finderでルートディレクトリを見ても、ターミナルから見るルートディレクトリと様子が違うのはなんで?見る人が見れば一緒なのか)

でも、くじけずがんばった。意味わからないところだらけだけど、やった。

できた!

これからちょっとずついじっていく。次はOpenLDAPのインストールに挑戦

合格

プロジェクトマネージャ試験受かった。これはかなりラッキーだ。
午前2 60点 午後1 60点
大学からこの点数は変わらないな・・・。

あと、RSA Conference Japan 2010で講演することになりました。

コードレビューの仕方

今日自分の書いたコードをレビューしてもらった。

ほんの数十行のコード。
コードレビューをお願いする直前に、もう一度よく見直した。そしたら1つバグが見つかった。
で、ちょっと思った。このバグはコードレビューに出したら見つかっただろうかと。
見つかったかもしれないし、見つからなかったかもしれない。

それは分からないのだけれど、もし自分がこのコードのレビューをしたとしたら、見つけられた可能性は・・・やっぱり5分5分だと思う。(少なくとも僕は見逃しそうになったわけだし)

問題はコードレビューの意図だと思った。僕が見つけたバグはそのコード全体の全体の動きに比べると小さなもので、ある意味そのバグがあっても、ほとんどの場合うまく動いてしまう。

1つ1つの命令の詳細をレビューで追っていくと、ものすごく時間がかかるから、たいていの場合、自分が普段気をつけているいくつかのポイント(ポインタがNULLだったらどうかとか、メモリは開放されているかとか)を中心に見ていくことが多い。
やっぱり細かいところを1つ1つ追っていくのは骨が折れる・・・って最初から思って、やっぱりあんまり真剣に頭を使ってひとつひとつ追っていかない。(これは人のコードを修正するときの、最初のオーバーヘッドの重たさに似ている)

で、ちょっと考えた。なんとか頭を使って読んでもらう方法はないか。レビューアーには嫌われる方法かもしれないけど、以下の方法。

「あらかじめバグを仕込んでおいて、それを伝える」

最低1個はバグがあると言っておけばいい。そうすれば少なくとも1つはバグを見つけてもらえる。同じ所かもしれないし、違うところかもしれない。でも、きっと頭を使ってやってくれるはずだ。

コード量がある程度多いなら、3つとかでもいいと思う。最低3つはバグが存在するのだから見つけられる。コード領が多ければ、別の3つを見つけてくれる可能性が高い。
バグが見つからなければ、見つかるまでやってもらう。でも、見つけられるだけの情報(関数の仕様とか)はちゃんと伝えなくちゃいけない

あと、埋め込むバグは難しいものにしなくてはいけない。簡単なのだとみんなそれを見つけてくる。

整数オーバーフローとか、オフバイワンとか、ちゃんと考えないと見つからないやつがいい。

誰かやってみてください。で、どれくらい嫌がられるか報告ください。
feedSubscribe to my feed