2009年7月12日

プログラミングと感覚

一年ほどのブランクの後、Excel VBAで、プログラミングを始めたばかりのころは、とにかくやりにくかった。

しかし、だんだん勘が戻ってきて慣れてきたころ、不思議なことに、同じものを見て感じることが変わった。
なんというか、モノの輪郭みたいなものが、強調されるような感覚。

この状態になってきた時、不具合が起きたときの対処が格段に早くなった。
デバッガ使うまでもなく、どんな処理がされて、どんなバグが起こっているか、想像できるようになっていた。

プログラミングはセンスって言われる。確かにそうだと、実感として感じた瞬間である。
論理の組み立てではなく、感覚でわかる。

おもしろいことに、将棋や、囲碁なんかでも、強い人ってのは、感覚というか右脳も使っているらしい。

考えていくと、イメージってのがまず先にあって、論理ってのは後付けなのかもしれない。

これは、論理が劣っているとか、そういう話ではない。
ソースコードそのものは、イメージとか感覚とかでは絶対なくて、論理として記述されている。

ってことは、イメージをいかに論理として変換して、論理をいかにイメージに戻すかが、重要と言える。
右脳だけでは、伝えられない。左脳だけでは、理解できないのである。

コールドリーディング

コールドリーディングをご存知だろうか?

コールドリーディング -- Wikipedia

僕は、一度、これモドキを仕掛けられたことがある。
配属の時に、同期のS氏に。

S氏の言葉は、確かに「当たった」
しかし、信じそうになったというより、彼のナルシストっぷりも手伝って、キモかった。

そして、コールドリーディングというものを知って、気持ち悪さの正体をがわかった。
信頼感0の相手に使ったところで、キモいだけの技術。
今となっては、0どころかマイナスである。

とはいえ、学問として捉えれば、興味深い技術でもある。
僕なんかは、投機実行なんかに、応用できないかってことを考えてしまう。

2009年7月7日

洗礼

まず、コンパイルできないという洗礼を受けた。これは、聞いたらすぐ解決した。

次に、起動しても、異常終了して、終わるという洗礼を受けた。

環境のインストールからやり直し、レジストリの値まで、チェックしていって、
起動を成功させるのに、結局3日かかってしまった。

原因は、ファイル一個。

副産物として、不具合らしきものを一つ見つけて、無事(?)起動に成功。

やっと、スタート地点である。

2009年7月2日

C#

ラダー&ハードウェア-> Excel VBA + SQL -> C# + SQL + ...
と、ロボットを扱うことには変わりないんだけど、
ハードウェアエンジニアから、ソフトウェアエンジニアに急激に変わった。

学生の時やってたことからしたら、戻ったの方が、正しいかもしれない。

Excel VBAでは、関数渡しの類いが無くて、苦労したが、
C#(2.0)では、関数渡しどころか、無名デリゲートが、使えるようである(Javascriptとかそういう世界)。
逆に、高機能に苦しむ可能性もありえる充実ぶり。

とは言え、様々な言語を渡り歩いてきた身としては、まったく新しい概念があるわけでもなし、
プログラミング自体としては、むしろ、ホームグラウンド。

2009年6月9日

Safari 4

タブが、元の位置に戻ってしまった。

カスタマイズで、Betaの時に戻せないかと、探したけど無理っぽい。

なにげに、気に入っていたのですが、残念

2009年6月7日

マウス運

ディスプレイといっしょに、当然、キーボードと、マウスを揃えたんだけど、
キーボードはまあ、アップル製でいいとして、マウスは正直、こりごりだったので、他社製を選んだ。

デザインに惹かれて、Scope Nodeを買った。見事に失敗した。

まず最初に、失敗したのが、右利き用ってこと。
ちょっとぐらいは、大丈夫だろうと思っていたら、想像以上に、左で使いにくい。
それと、カウント数が多いからか、動きが、ちょっと速すぎる。

そこまでは、許せたので、使い続けていたのだけど、今度は、クリックが変になって、
一回クリックしただけなのに、複数回になるってことが、ときどき、起こりだした。

おかけで、いきなり、開きたくもないファイル開いたりとか、
致命的に許せなくなった。

結局、ごく普通のマウスを買いなおした。

僕は、マウスに関しては、運がない。

で、話は変わって、アップル製マウス。
Mighty Mouseは、最初は感動したけど、最後まで、使いやすいと思えたマウスは、皆無だった(気がつけば、4回も買い直していた。今更ながらに、正直アホ)。
ノートパソコンのトラックパッドは、いいのに、なんで、マウスは、こんなにダメなんだろう?(マイクロソフトは、真逆で、マウスはいい)
あくまでも、普通のマウスはいやみたいなので、ここで提案してみる。

いっそ、マウスじゃなくて、トラックパッドにする。
ノートパソコン用の、テンキーを薄くして、キーの部分をパッドにするイメージ
キーボードにくっつけても、案外、いいかもしれない。

グッドアイディアかもしれない。

2009年6月6日

SQL Join

要素にIDを付けて、テーブルには、IDを登録している。

IDから要素が知りたい時、Joinを駆使すれば、連想配列の類いを使わなくても、SQLだけで、実現できることに、いまさらながらに、気がついた。

他にも、Joinで、今まで、Excel VBAでやってた作業が実現できることを発見

こうなると、SQLだけで全部実現したくなってくる。
SQLを使いこなせるか以外の問題は、実行コストだけど、どれくらいになるのだろう?

問題ないなら、かなりの部分を、データベースエンジンまかせにできる。
こうなると、インタフェース(Excel)を別のものに変更することも、容易になる。