トップ 最新 追記

K2さんの雑記


2002-12-01(Sun) [長年日記]

[]優勝するぞ

来年こそは。

ここらで一発やっとかな、優勝を知らない子供たちばかりになる。

そろそろ、一発やっとこう。

わたしは大学一年の時に堪能させていただきました。優勝する年は、野球を見るのが幸せよ。そういう経験を、ぜひ恵まれない子供たちに。

来年は優勝しまっせ。よろしく。


2002-12-06(Fri) [長年日記]

[TTBase]atext(ALT+TABのタスクリスト一覧)

naoさんちのatextプラグイン。TTBase用のALT+TAB置換用。もともとは、ここでも紹介したJoeをnaoさんが雑記で紹介したことに端を発する。Joeで、一覧を小さくしたいな、ウィンドウ出っぱなしがいいなと言ってたら、naoさんが作ると言うことになった。そういう小物を簡単に書けるようなぶっこみ常駐ソフトがあったらなとnaoさんがもらした。じゃぁ汎用的なのを書きましょということでTTBaseの初期アイデアができたのでした。

で、その発端となったatext。WindowsのALT+TABって突き詰めて調べると、かなりかしこいのであった。アプリケーションが設定ダイアログを出していた場合、その設定ダイアログにフォーカスがあたる。当たり前のように見えて、これが非常に難しい。そうだなぁ、EnumWindowsでアプリの一覧が欲しいという要望は、わたしの中ではWindows開発を始めた頃から何回もあって、そのたびにいろいろと逃げの手を打ってきたのだが、そろそろ突き詰めてもいいんじゃないかと、ちょっとがんばってみました。オープンソースの場合、誰でもそのソースが修正できるから、気が向いた人が気が向いたときに修正できるのでいいね。

もともと、EnumWindowsで得られたトップウィンドウ一覧から、どうやってゴミのウィンドウをふるい落とすかをいろいろ試行錯誤していたのだけども、どうしてもうまくいかない。一つのアプリで2つ以上のウィンドウが一覧されてみたり、それがいやでふるい落とす条件を厳しくすると表示されないものが出てきたり、いい落としどころがない。

その後、先ほど書いたことだが、モーダルダイアログなどがメインウィンドウの上に出ている場合は、そのモーダルダイアログにフォーカスを当てないといけないことが判明。フォーカスを当てようとするときに、もう一度EnumWindowsをやって、そのウィンドウの上にあるウィンドウを探そうとしたが、それもすべてのアプリについてはなかなかいい条件がわからなくて。

だいたい、Delphi製のアプリがまず例外の一番手。Delphi製のアプリには、見えないTApplicationというサイズ0のウィンドウがいることは結構有名な話なんだが、これとメインフォームとの区別がなかなか付かない。OSはどうやって区別しているか、いろいろ調べているがわからない。

Winampは、メインパネルがオーナーで、その下にプレイリストとかイコライザーとかがぶら下がっているが、親子関係はない。これも例外の一つ。

ウィンドウには、オーナーと親子関係という2つの関係が存在することをここで書いておくが、この辺が、タスクボタンが出るかとか、ALT+TABで表示されるかどうかとかに密接に絡んでくるのだ。

で、いろいろ調べて、だいたいわかった結論が以下。

タスクボタンに表示されるのは、EnumWindowsで得られるトップウィンドウのうち、オーナーと親ウィンドウがないウィンドウで、ウィンドウスタイルにWS_DISABLEDがなく、WS_VISIBLEであり、拡張ウィンドウスタイルにWS_EX_TOOLWINDOWがないもの。

ALT+TABで表示されるのは、上記のウィンドウをオーナーに持つウィンドウのうち、EnumWindowsで一番最初に列挙されるフォーカシング可能なウィンドウ。

ここには例外があって、オーナーと親を持たないウィンドウがWS_EX_TOOLWINDOWの場合、そのウィンドウがダイアログを所有すると、そのダイアログはALT+TABに表示される。

わかってみれば、そんなに複雑なロジックではない。で、ALT+TABのリストを得るためには、具体的にはどうするか。

まず、EnumWindowsで、親もオーナーも持たないウィンドウ(つまり最上位のオーナーウィンドウ)の一覧を取得する。その際、WS_EX_TOOLWINDOWを持つものはタスクボタンが出ないので、除去する。例外として、ダイアログを見つけたら、その最上位オーナーを捜して、それがWS_EX_TOOLWINDOWだったら、それは一覧に追加しておく。

次に、その最上位オーナー一覧を保存しておいて、もう一度EnumWindowsを行う。その際、WS_DISABLEDでなくWS_VISIBLEであり、WS_EX_TOOLWINDOWでないウィンドウを見つけたら、その最上位オーナーを捜し、最上位オーナー一覧のオーナーウィンドウをそのウィンドウで置き換える。一度置き換えたら、一番最初のウィンドウを優先するため、そのウィンドウは固定する(もう入れ替えない)。ただし、最上位オーナーウィンドウがフォーカスを得られる場合(つまりWS_DISABLEじゃなくWS_VISIBLEな場合)、そのウィンドウを優先する。

最後に、2回目のEnumWindowsで置き換えられなかったウィンドウは、フォーカシング可能なウィンドウがないということだから、オーナーウィンドウ一覧から除去する。(最上位オーナーウィンドウが条件にマッチして結果的に置き換えられなかったものは除去しない)

これで、ALT+TABの一覧を得ることができる。ただし、これでもDelphiのTApplicationウィンドウを避けることができないので、2回目のEnumWindowsで、サイズが0のウィンドウははじくようにする。OSがサイズ0のウィンドウを特別扱いしているとはわたしには思えないので、この部分のロジックがわたしの中では未解決。

というわけで、これでだいたい完全なALT+TABリストを得ることができました。ちょい疲れたけど、なかなかいい勉強でした。

[追記]

文章をまとめていて気づいたが、TApplicationは、もしかしてEnumWindowsで列挙されるウィンドウ順で、必ずメインウィンドウより後ろに列挙されるのではないか。そうだとしたら、上記のロジックでウィンドウ一覧を集める場合、サイズ0のウィンドウをはねる必要がなくなるな。確かにSpy++などで見ていると、TApplicationは、たいていメインウィンドウのいくつか後ろにいる。

なるほどそういうことか。最後の謎も氷解。ALT+TABを見切らせていただきました。

[追記2]

だめだ。追記は間違い。最上位オーナーは優先するから、TApplicationの列挙順序が後ろでも優先されちゃうんだよなぁ。やっぱ、ここは謎のまま。


2002-12-07(Sat) [長年日記]

[TTBase]AlwaysK2Eプラグイン

 プラグイン中毒にかかっていますので(^^; また一本作ってしまいました。

 いや、実は、今日、別のことをやろうとして、エクスプローラからK2Editorに関連付けられていないファイルをK2Editorで開こうとして、ふっと閃いてしまいました。

 そういやー、昔(Win95の頃)は、WZEditor 3.0を入れると、エクスプローラ上でSHIFT+ENTERを押すと、強制的にWZEditorで開いてくれたよなぁ。あれ便利だったなぁ。

 あれ確か、レジストリの関連づけの裏技みたいなの使ってたんだよなぁ。Windows98あたりから、その裏技が使えなくなって、この機能が消滅してしまったんだよなぁ。

 ん、そういえば、常駐もんでこの機能を実現できるんじゃないの? エクスプローラ上でSHIFT+ENTERを監視して、そのイベントをエクスプローラから横取りして、K2Editorにファイルを送っちゃえばいいやん。

 大枠は割と簡単にできた。で、いざエクスプローラで選択されているファイル名を取得しようとして、はたと行き詰まってしまった。ファイル名はリストビューから取ればよいんだろう。じゃぁフォルダ名はどうするの。アドレスバーにあるじゃない。んー、でもフォルダオプション変更すると、ここフルパスじゃなくなってしまうんだよなぁ。

 それからWEBで検索をしてみたが、あんまりいい情報がない。DelphiMLで、どなたかが、「ShellWindowsとInternetExplorerを使えばいけるのではないか」というアイデアを書いていらっしゃるのを見つけたが、具体的なコードはない。ShellWindowsで調べても、あんまり情報がないのだよなぁ。で、もう一度DelphiのVCLに戻って、ShellWindowsを調べると、TShellWindowsというのがあった。どうやら、エクスプローラとインターネットエクスプローラを列挙してくれるActiveX系のオブジェクトのようだ。使い方が全くわからん。検索しても、Delphi関連のページでは情報がほとんどない。適当にやってみたら、なんとかできてしまった。

SW := TShellWindows.Create(nil);
Count := WS.Count;
for I := 0 to Count - 1 do
(SW.Item(I) as InternetExplorer).LocationURL

これで、フォルダ名のフルパス(実際にはURL形式だから加工が必要だが)が取れる。で、そのまま完成型まで持っていったが、このプラグインをエクスプローラで使用すると、エクスプローラを終了するときに、エクスプローラが結構致命的なエラーを吐くことがわかった。

 昔、フックとDelphi製のDLLで同じようなエラーを出してかなり長時間はまったことがあったので、今回もそれかと想像。フック部分はVCで書いていたのだが、慣れの問題で、Delphiで書いた方が開発速度が一桁くらい上がるのよねぇ。で、ActiveX系のややこしいところはDelphiで書こうとしていたんだが、全部VC++に移植しないとあかんかなぁと。まぁ、とりあえず調査調査で、結局、先ほどのコードが原因だったことが判明した。

 実際には、

var
SW: IShellWindows;
SW := CoShellWindows.Create;
for I := 0 to SW.Count - 1 do
begin
(SW.Item(I) as InternetExplorer).LocationURL;

と書く必要がありました。うーん、この辺に関しては絶対的な知識不足だー。こんなコードをすらすら書けるようになるのか。やはりCOM関連は一度ちゃんと勉強しないといけない。でも、関連ドキュメントが少なすぎるよー。

 さて、もう一つ問題は、エクスプローラのリストビューから、ファイル名を取得する部分。これが結構ややこしくて、そう簡単にはファイル名を教えてくれない。共有メモリをちゃんと作成しないといけないし、一見使えそうなListView_GetItemTextは使えないことが判明。この辺はCで書いた方が楽らしい。Cなら上記マクロはちゃんと動くようだ。

 で、最初は楽勝楽勝と思っていたが、最終的にかなり大変な作業になってしまった。

 しかし、懐かしのSHIFT+ENTERでテキストエディタ強制起動というのは、やっぱりかなり便利。まぁ、こんなのを便利だと言える人は、やっぱりかなり普通の人ではないのかもしれないけど。 うちのベータページに置いてあります。興味のある方はどうぞ。


2002-12-10(Tue) [長年日記]

ATOKで計算

できるかなの新作、私たちの手で全てを描く

ATOKで数式変換ができるプラグインが発表されています。

たとえば、

「2^2+3^2= 13」なんてのが簡単に入力できます。関数電卓みたいなもん。もしかして、これはきたかも。いいかも。ちょっと使ってみます。

16進数計算に対応してくれないかなぁ?

注意。ATOKを使って数式を入力してからプラグインを起動すること。先にプラグインを起動するのではありません。10分くらいはまってしまいました(^^; なさけなや。

それと一緒に、タスクバーにアドレスバーを埋め込む技、初めて知りました。早速設定してみました。「アドレス」の文字がいらん。消したい。でも、これもちょっと使ってみます。

最近、裏技ばっかりやってますな(^^;


2002-12-16(Mon) [長年日記]

C++をお勉強

ちょっと近辺でC++を勉強するというので盛り上がっていて、先週、どの本を使うかで盛り上がっていました。

いろいろ調べてみたけど、適度な量と内容を兼ね備えた、プログラミング入門書ではないC++入門書というのは、なかなかないです。

結局、C++Primer第3版を選びました。この本、高い・厚い。1200ページもあって、8000円(税別)もする。実際買ってみたら、消費税がかかるので、8400円でっせ、旦那。でもなぁ、いくら厚くて高くても、この本立ち読みしてみたら、他の本は買う気しなくって。結構悩んだんですが、土曜日にななちゃん(うちの2歳半の子供)に付き添われて、購入。

帰りにななちゃんが寝てしまったので、車を木陰に止めて1時間。その間読んでみましたが、やっぱり厚すぎて可搬性に欠ける。6cm以上ありますよ。車の中で読むのもかなり大変。 

さて、現在2日目ですが、180ページくらいまで読みました。目標は年内読破。次はJava本を読むつもりですので、まぁ早めに終わらせるつもりです。1200ページあるけど、文章はいいし、内容もよいし、飽きずに読めそうです。最後まで読んではじめてC++が全部わかるという構成なので、途中で放り出すわけにもいかなさそうですし。

Webでいろいろ調べてみたのですが、C++ Primer 第3版についての評価ってあまりないんですね。読んでいる人少ないのかな。ちょっとその辺が気になるが、たぶん自分で見た限りでは良本だと思うのだが。

前に買ったEssential COMは挫折しました。とりあえずこれもC++の下地がいるし、C++をやってから、次を考えることにします。


2002-12-17(Tue) [長年日記]

[TTBase]てめえ邪魔じゃ

 業務用のツールで、あんまり重要でないのに、常に最前面状態のウィンドウになるウィンドウがおる。  こいつ。これが親になって、別のウィンドウを開き、そこでコンパイルを行うのだが、この小さいウィンドウが最前面状態。これ、邪魔なのだ。

 で、TTBaseで、最前面属性を殺してやった。

 プラグインSDKに、以下のように書いてコンパイル。TTBase再起動。ふふふ、やったったぞ。邪魔物め。

procedure HookProc(Msg: Word; wParam: DWORD; lParam: DWORD);
var
 WinClass: array[0..255] of Char;
 Title: array[0..255] of Char;
begin
 if Msg = TTB_HSHELL_WINDOWCREATED then
 begin
  GetClassName(wParam, @WinClass, 255);
  GetWindowText(wParam, @Title, 255);
  if (WinClass = '#32770') and (Copy(Title, 1, 3) = 'HIM') then
  begin
   SetWindowPos(wParam, HWND_NOTOPMOST,0,0,0,0,
SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);
  end;
 end;
end;

[TTBase]SETI起動時最小化

 SETIクライアントの起動時に最小化できないので、最小化機能を、上記プラグインに追加。

  if (WinClass = 'SetiClientChild') then
  begin
   // SETIの起動時、最小化
   SendMessage(wParam, WM_SYSCOMMAND, SC_MINIMIZE, -1);
  end;

を付け加える。

 もしかしたら、「SETI起動時に最小化できない」ということ自体が、わたしがおおぼけをかましている可能性あり。まぁ、いいんです、数行でできるんですから。

 念のために、このプラグインは公開予定はありません。こういうのは自分で自分用に作るから、何も気にしないですぐ作れるのですわ。作り方だけ、ここに書いています。


2002-12-22(Sun) [長年日記]

移籍問題はほぼ終了?

ノリ残留。

最後まで悩んだんだろうと思う。決定がこの時期になったのは、なんら批判されるべきことではない。最初から12月中旬以降じゃないと結論は出さないと言っていたし、本来1月下旬までに結論を出せばいいことになっているわけだから、結論を出した時期に関しては批判するところではない。

でも、いったん決まりかけていたメッツが、ほぼ決定したという事実をマスコミに漏らした(真偽のほどはさておき)ということで、一転近鉄残留をその瞬間に決めたというのは、なんかなーと思う。いったんふくらんだメジャーへの思いは、たったそんなことであきらめられるものなのか? もしメジャーに強烈なあこがれがあり、本当にメッツの破格の条件をありがたいと思っているなら、そのことに対して批判こそすれ、その瞬間に身を翻すことは可能なんだろうか。日本式の仁義に反すると言うことであれば、まぁそれなりに理由にはなりそうだけど、どうも不自然さがありありというか。

推測するに、やっぱり中村は、メジャーへの挑戦に対して、かなり尻込みしていたのではないだろうか。「中村ブランド云々」という中村の文言からは、松井への強烈な対抗意識や、近鉄という田舎球団(失礼)に所属していることから来るコンプレックスなんかがあったような気がするなぁ。で、それらに後押しされる形で一時はメジャーへの挑戦を決めた。だが、最後まで成績が残せるかどうかが不安だった。松井がヤンキースに決まり、活躍の場も同じニューヨークと言うことになり、自ずと比べられることになる。結局松井に対しても、コンプレックスから来る対抗意識なんじゃないだろうか。だから、その不安を解消できるちょうどいい理由が目の前に偶然ぶら下がった瞬間、それに発作的に飛びついてしまったのではないか。

星野さんの言うところによれば、17日までノリの気持ちは阪神には向いていなかったということなので、となると、結局メジャーと近鉄の間で揺れていたということだよなぁ。上記の推測通りなら、コンプレックスから来るメジャー挑戦であり、メジャーへのあこがれから来る挑戦ではないということになる。じゃぁ、結局、ノリはどこへ行きたかったんだ。FA残留を選ばなかった本当の理由は...?

やっぱり、早期撤退をした、あそこが本命だったのだろうか?

うーん、あんまり考えたくないことですね。ノリ側から蹴ったように見えたが、あのときはかっこよかったけどなぁ。松井が抜けた後の穴を、自分が埋めるという夢を見たんだという気も、今となるとあながち考えられないことはないなぁと。ノリって、今回の騒動見てても、すっごい子供だなぁって感じするから、そういう夢見そうな気がする。

つうことで、わたしの予想は半分はずれました。でも、結局収まるところに収まった感じ。終演はつまらない幕切れでしたね。阪神にとっては、これから取るであろう外国人にもよるが、かなりいい補強だったのではと、わたしは見ています。

来年も楽しみ。応援しましょ。

C++

C++Primer読み中。現在P618/1218。目標年内読破。一応予定通り。

しかし、こんなペースで読んで、C++が身に付くとはとても思えない...(^^; まぁ、C++とはどういうもので、どういうトピックがあるのかはわかるので、実際に使い出すときには、手がかりがたくさん頭の中にあるはず。これでよいのだ。

RealForce106

知り合いの方からRealForce106(東プレの16800円のキーボード)をお借りすることができまして、現在試用中。まず第一印象。このキータッチは異次元ですね。独特です。ただ、今まで使ってきた中では、富士通のFKB8520の方向性に非常に近いです。こちらはスプリング+メンブレンで、かなり軽いキータッチだったのですが、東プレはその方向性を極端に持っていった感じ。これに慣れれば、手のひらの疲れはかなり軽減されるだろうな。

使っているうちに、気になる点がいくつか出てきました。まず、あまりにキーが軽すぎて、必ず底打ちまで打鍵してしまう。たとえば、Justyの109の場合、キーがそこそこ重いので、底打ちしないで打鍵できます。このため、キーは重いのに、意外と疲労感が少ない。RealForceは、軽いので必ず底打ちしてしまう。底打ちしないように打つのはかなり難しい。となると、キーストロークが深かさがだんだん気になってくる。指を動かす範囲が大きくなるため、疲労が蓄積してしまう。押し圧の絶対値が小さいので、その部分では疲労は少ないのだけど、この可動範囲が大きいのが長期間使ったときにどう出るか。

もう一つ打鍵感に関する不満は、同じキーの二度打ちが難しいこと。キーが軽いので、2回同じキーを押すのに失敗することが多いです。これは慣れで解消するのかもしれない。

いや、すごくいいんですよ。今まで使ったキーボードの中で、文章を打つのが気持ちいいという感触はダントツ。で、これが2000円対16800円の価値の差となるかどうかは、今のところかなり微妙。高いからかなり辛口な感想になってしまうことは許してください。

最後は、指と手のひらの疲れがどの程度減少させられるかで、勝負は決まるでしょう。1週間ほど試用できる予定なので、使ってみます。

んー、でも、いい機会に恵まれました。感謝。


2002-12-24(Tue) [長年日記]

[K2E]1000文字制限

TEditorのよく知られる仕様として、1行に表示できる文字数は1000文字(バイト)までというものがあります。

現在Windows用のエディタは星の数ほどリリースされているわけで、こういう制限はあるだけで敬遠されるということもあるので、開発者としてはいやなわけです。

で、前のこのページでもお知らせしました(4月くらいだったかな)が、TEditorの描画部分の一番低レベルなところをちょいちょいっと書き換えれば、この制限を避けることができます。何文字でも描画できるようになるのですが、一つ問題点があります。

DEKOさんところにもあるように、スクロールバーです。結局これのせいで、横方向には制限をかけなければなりません。

読み込まれている文書の1行最大桁数を取得して、それに合わせてスクロールバーを設定するという方法もあるのですが、TEditorの構造上、パフォーマンスを落とさずにこれをやるのは難しい。

上記の方法を取らなくても、実はNT系では8192文字までは表示できることがわかったので、K2Editorではこの方法を実装して、Win9Xは1000文字、W2k,XPでは8191文字としています。これ以上の桁数の場合は、そういうファイルを編集したときにもパフォーマンスが落ちないように設計されたエディタを使ってくれというのをスタンスにすることにしました。

まぁ、今後もこの一点をついていろいろ批判を受けることもあるでしょうが、そのときは別のエディタを使ってちょうだいと言いますので、よろしく。

Realforce106再び

現在、試用継続中です。

やっぱり、これはいい。かなりいい。これ使い続けると、やめられなくなりそう。手の疲れもかなり軽減すると思う。前にも書いたように不満も少しありますが、やっぱささいなことですわ。この質感と打ちやすさを主張されると、ディスプレイとキーボードはいいものを使わないといけないというのをひしひしと感じます。

重いキーボードからいきなりこのキーボードに変えると、違和感があるのは事実で、このキーボードを持ち歩きたくなります。仕事場と家に、自費で複数台入れるのは値段的に現実的じゃないし、悩ましい問題です。とりあえず、家用に一台買おうかどうしようか、ひじょーに迷ってます。

せめて7千円くらいだったらなぁ。3台買うのに。

-----------

このキーボードを押すときの感覚、どこかで似たようなのを覚えているんだけど、なんだったか思い出せない。PC98のキーボードにクリック感をつけるとこんな感じかなぁ。PC98のキーボードはクリック感がなかったけど、非常に質感はよかった。PC-9801FAのキーボードって、クリック感を除けばこんな感じだったような気もするけど、確信がない。指先が覚えている懐かしい感覚なんだけどなぁ。もっと子供の頃にさわった何かの機械だったのかもしれない。うー、思い出せなくて、気持ち悪い。


2002-12-25(Wed) [長年日記]

未熟

 Delphi-ML にて「えっ」という議論が...

 インスタンスを作成しなくても、クラスの通常メソッドは呼べてしまう。

 試しに、

type
  TFoo = class
  public
    procedure Show;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;
procedure TFoo.Show;
begin
  ShowMessage('OK');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  foo: TFoo;
begin
  foo := nil;
  foo.Show; // <---------------------------------------- (a)
end;
(a) で、アクセス違反は起きない。
(a) のコードでは、コンパイラは Show の呼び出しを行うだけで、
    foo の参照についてはテストしない!

うー、知らなかった。当然 foo が nil の時は、Show 呼び出しでアクセス違反になると思っていたら、そうじゃないとは。確かに、呼び出しのコードを作成するだけと考えたら、それですべてつじつまが合うのだ。

 ちなみに、

type
  TFoo = class
  private
    FTest: Integer; // <--------------------------- 追加
  public
    procedure Show;
  end;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;
procedure TFoo.Show;
begin
  ShowMessage(IntToStr(FTest)); <------------------- (b)
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  foo: TFoo;
begin
  foo := nil;
  foo.Show;
end;

とすれば、(b)でアクセス違反が起きます。fooのインスタンスはまだ作成されていないので、FTestのメモリが確保されていないということですね。

 そう言われてみれば、今までデバッグでそういう現象を見たような記憶がある。不思議だなぁと思っていたような気もする。

 ちゃーんと理解して、心にたたき込んで置かないと、デバッグ時にとまどうことになるぞ。よーく覚えておこう。


2002-12-27(Fri) [長年日記]

Realforce再び

試用記の続き。

非常によいのです。

問題は、他のキーボードを使った後に、このキーボードを使うとき、または、このキーボードを長く使った後、他のキーボードを使うとき、非常に違和感があるということですね。

Realforceというキーボードは、実は使用者に慣れを要求すると言うことがわかってきました。このキーボードを使いこなすためには、かなり打ち込んで慣れる必要がある。特に、廉価版の打鍵にひっかかり感があるようなキーボードを長年使っていると、どうしてもこのキーボードを使うとき、力を入れすぎてしまう。このキーボードは、力を入れすぎると速く打てないし、ミスタッチも増え、かえって疲れがたまる感じがします。

このキーボード特有の打ち方というのをマスターすれば、確実に手への負担は減ります。これはほぼ間違いないでしょう。

ということは、複数台のパソコンを使っている場合、複数のRealforceを買う必要がある。または、1台だけ買って、それを持ち歩かなくてはならない。いちまんろくせんえん以上するキーボードだし、なかなかつらいことを要求しはります。

ちなみにわたしは、主に3台のパソコンを使っていますから、キーボード3枚、計5まんえんなーり。ぐへっ。

来年発売予定とされるコンパクトキーボードを買って、それを持ち歩くというのも一つの方法かもしれない。しかしそこまでするか... うーん、非常に難しい選択です。家と会社に1台ずつというのが、目一杯と言うところですが、それでもやっぱり厳しいね。

ところで、Realforceのロゴ、ちょっと派手すぎへん?(^^;

さりげなく、小さく主張しているようなロゴが好きです。

それから、ここではあまり書かなかったのですが、このキーボードの音、結構うるさいです。メカニカルキーボードは、押したときの音がうるさいのですが、このキーボードはどちらかというと、離したときのキートップが振動する音というのが、なかなかユニークな音で、これが結構うるさいです。職場等ならほとんど問題のない音だと思いますが、子供が寝ている部屋の近くなどでは、ちょっと打ちにくいです。

ちなみに、うちではマウスクリック音でも、子供が起きますので、音に関してはかなり気にする方だと思いますので、気にならない人にはほとんど気にならないのかもしれません。

ほーら、そろそろ、調子出てきたよん。やっぱりこのくらいは打たないと手が慣れてこない。調子出てきたところではあるのですが、もう書くことがなくなってしまいました。

たぶん、この辺が最終評価ではないかと思います。もう少し手元にあることになっていますが、ここから評価が急激に変わることはないでしょう。お金があれば、3台欲しいです。


2002-12-29(Sun) [長年日記]

読了

C++Primer読了しました。

駆け足で、若干端折ったところもありますが、年内読了の目標を達成しました。さすがにボリュームありましたが、この本を選択してよかったです。

基本的にCを知らなくても読める本になっていますが、一つ以上のオブジェクト指向言語に習熟していないと、ちょっと厳しいかもしれません。特にこんなに短期間に読むためには、オブジェクト指向の基本的な考え方は身に付いている必要があると思います。

そうじゃない場合、この本を攻略するには、ボリュームの関係でかなり根気を必要とすると思います。確かに冗長な説明とか、例として引用されているプログラムなんかを端折ってもっとコンパクトな本にすることはできると思いますが、まぁそれでも2/3(つまり800ページ)くらいの内容であることは確かです。

世の中のC++入門本は、もっと薄くて、もっとスペースが空きまくっていますから、いったいそういう本では、どのくらいの物事が省略されているのでしょう? 最初にこの本を立ち読みで見たときに、他の本に目がいかなくなってしまったのも、この点が非常に気になったからです。結局C++の言語仕様は複雑で、説明し切るにはこのくらいのページ数が必要だと、読み終わった後も思います。

とりあえずおめでとうと自分に言っておきます。次は、GoFのデザインパターンの3回目をやるか、Java本を探すか、どちらにしようかな。C++がわかった状態でGoF本を読むと、また違った印象を持つのではないかと、ぜひ3回目の通読をやってみたいと思ってますから、こっちからかな。


1965|09|
2002|09|10|11|12|
2003|01|02|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|03|04|05|08|
2014|01|02|03|04|05|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|11|
2017|01|03|05|06|07|08|10|11|12|
2018|01|02|03|04|05|08|09|10|12|
2020|01|07|




2002年
12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
/ / /
最近の日記