
/*
    KAB-studio.h
        　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
        が格納されたヘッダーファイルです（笑）。

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    送信日： 2000/04/24(Mon) No.054
    配信数： 3660（ Mag2 + Pubzine ）
＊    発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/


/*              ２０００年４月２４日（月）の更新                  */
http://www.kab-studio.com/Info/News/

・旧かぶスタ削除開始。
　旧アドレスにある各ページを削除しはじめました。
　今回は、とりあえず末端ページを削除して、 index.html や start.html 
を「引っ越しました」ページに差し替えました。なので、基本的には旧ページ
はかけらも残らないことになっています。
　この引っ越し先ページ、そして旧アドレスそのものが、近いうちになくな
ると思います。それまでにリンクを変えておきましょう。
　ちなみに「なぜ削除されるのか」について。今回の引っ越しは、ジャスト
ネット内での引っ越しです。アドレスやディスクスペースは新しくもらいま
したが、基本的なサービス（ダイヤルアップ接続など）は変更せずにそのま
ま使用できるというものです。で、アドレスやディスクスペースは「１サー
ビスにつきひとつ」なので、旧アドレスや旧ディスクスペースは近いうちに
削除されることになるのです。
　で、今回の移行には「３ヶ月間」の猶予が与えられているんですが、それ
があまり明確でないんです（汗）。なのでいつなくなるかは定かでない、と。
まぁ、引っ越してから結構時間も経っているので、そろそろいいのではない
かなということで。更新のネタもないし（汗）。

[旧 KAB-studio ホームページ]
http://www2.justnet.ne.jp/~kabstudio/


/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2000/04/16 (Sun)
　カレンダー作ったりソフトパステルで絵を描いたりテレビ見たりリクナビ
に登録したり、休日を満喫。

2000/04/17 (Mon)
　昨日描いたソフトパステルのイラスト。そして４ヶ月の間を置いて再び再
セットアップ！！　なんでこんなに頻繁にせなならんの〜！？（泣）　あと
盛り上がるターンＡガンダム。

2000/04/18 (Tue)
　のんびり＆ゼミ〜。

2000/04/19 (Wed)
　健康診断で出遭った謎の機械とわ！！　にしてもここ最近の文章、なんか
えらい長い。書いてる本人も、読むの辛い（爆）。書いてるときは辛くない
んだが……。

2000/04/20 (Thu)
　デッキがトラブるも復活。そしてラブひな！　テレ東はがんばってます！

2000/04/21 (Fri)
　のんびり＆ゼミ〜。そして祝１６万ヒット。なんだかんだ言ってコンスタ
ントに稼いでます。

2000/04/22 (Sat)
　myShade2 でモデリング。今回はちょっと違う方向せいなのです。あとテ
レビ色々。


/*                         鏑矢の憂鬱                             */
http://www.kab-studio.com/Programing/KabuU/

2000/04/16 (Sun)
お休み

2000/04/17 (Mon)
情報理論
２進木
バイナリーデータの話
お便り
サービスについて
ウィンドウが作れない
サービス作ったことないから分からない（泣）

2000/04/18 (Tue)
情報処理論第二
「 n 番目に大きい値を見つける」というアルゴリズム
お便り
情報理論について
授業いい？
実はよくない
ただ去年よりはいい
お便り
NT サービスの問題は解決
パラメータの設定ミス
やめないで下さい
ありがとー！

2000/04/19 (Wed)
信号処理論
イメージ掴めないと
お便り
メモリデバイスコンテキストについて
サンプルコード
デバイスコンテキストへの描画は「今持っているビットマップ」に行われる
ビットマップも作って持たせる必要がある
詳しくは「オーナードローメニューの作製（後編）」を参照

2000/04/20 (Thu)
BCC5 をインストール
STL が通った
gcc もあるから、 BCC5 を使うメリットはそれほどない
BCB5 はパス
VC のキーカスタマイズについて
キーアサインした方がいい機能一覧
WordLeft -> WordUpperCase -> WordRight が便利
VC のエディタはプログラミングに便利

2000/04/21 (Fri)
お便り
ウィンドウの中に子ウィンドウを作りたい
行番号を表示したい
ちょっと難しい
分割ウィンドウを使った方がいいかも
子ウィンドウの作り方について
サンプルコード
お便り
メモリ DC 早速やってみます

2000/04/22 (Sat)
お休み


/*                       今週の追加単語                           */
http://www.kab-studio.com/Programing/Dictionary/

・追加単語：
サービス 再帰呼び出し DOM

・今週のごめんなさい
回帰 CDC ASPI

　今回は少ないですね、ごめんです。次回でストックが切れるんで、再び単
語の受付をしたいと思います。ただ、いっぱい来たらまた１週間で締め切っ
ちゃうかも（汗）。まーそーゆーサイクルも悪くないかな？

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『なんか、 STL & iostream 入門ってむずかしーね』
「火美ちゃんレベルだとちょっときついかもねー」
『だったらここに広告載っける意味ないんじゃない？』
　いつかのために、購読登録。
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 4.04
２進数

「さて、前回は〈メモリはスイッチの集まり〉ってことを話しました」
『話されました！』
「この中で」

オフ・おん・オフ・おん

「が 5 を意味するっていうことを話したよね」
『そうそう。でもこれがなんで５？』
「今回はそれについて。まず普通の１０進数のことを考えてみましょう。
9 + 1 は」
『 10 でしょ』
「ええっ！？」
『ええっ！？　……って、引っかけ問題？』
「なんで 10 が〈じゅう〉なの？　なんで 11 が〈じゅういち〉なの？」
『なんでって言われると……』
「１桁目が 1 なら〈いち〉。じゃあ２桁目が 1 なら？」
『じゅう……？』
「２桁目が 2 なら？」
『にじゅう……』
「普通数字を読む時って直接読むけど、本当は〈ひとけたずつ解析してる〉
ってこと」
『ひとけたずつ？』
「 32 なら、１桁目が 2 だから 2 、２桁目が 3 だから ３じゅう、って」
『だからさんじゅうに、ってこと？』
「そういうこと。じゃ応用問題、１６進数！」
『う”、難しそう』
「 F + 1 は？」
『えっと、 Ver 4.02 ( No.052 ) でやったよね…… 0x10 ！』
「その 0x10 を１０進数で言うと？」
『 F が 15 だから、それに 1 足して 16 ！』
「っていう数え方はぺけ」
『ええ〜！？』
「１０進数で〈２桁目が 3 だから ３じゅう〉ってしたでしょ。それと同じ
ふうに数えるの」
『おんなじふーにって？』
「〈２桁目が 1 だから１じゅうろく〉ってね」
『？？』
「１０進数で、２桁目の数字を〈３じゅう〉とか数えるのは、ひとつ繰り上
がると〈じゅう〉になるからでしょ」
『そういえばそうね』
「１６進数なら、繰り上がると？」
『じゅうろく』
「だから〈２桁目が1 だから１じゅうろく〉ってこと」
『はぁ……』
「 0x10 は？」
『ええ！？　えっと、おんなじふーにすると、１桁目が 0 だから０、２桁
目が 1 だから……１じゅうろく……？』
「 16 が１個で？」
『 16 。あ、１６だ。』
「 0x11 を１０進数で言うと？」
『えっと、１桁目が 1 だから１、２桁目が 1 だから１じゅうろく』
「ってことは？」
『いちじゅうろくいち』
「じゃないでしょー」
『えっと、 0x10 が 16 だったんだから、 0x11 は 17 になるんだよね。…
…あ、足すってこと？』
「そういうこと。１桁目と２桁目を足すと？」
『 17 』
「じゃあ 0x2C は？」
『えっと、１桁目が C だから 12 、２桁目が 2 だから２じゅうろく』
「 16 が２個で？」
『 32 』
「１桁目と足して？」
『 44 ！　あってる？』
「うん。心配ならアクセサリの【電卓】使って確かめてみた方がいいかも」
『あ、ちゃんと確認できるんだね』
「じゃあ 0x100 は？」
『さ、３桁！？』
「……難しそうだから、その前に 0x0F0 は？」
『あ、えーっと、２桁目が F だから 15個の１６、だから…… 240 ！』
「 0x0FF は？」
『 240 + 15 で 255 だね』
「じゃあ 0x100 は？」
『あ、 0x100 = 0x0FF + 0x001 だから 255 + 1 で 256 なんだ』
「って数え方は」
『ペケ？　えーっとねー、２桁目が〈１じゅうろく〉とかだったんだから、
３桁目は……』
「〈じゅうろく〉はどっからきた？」
『えっと〈繰り上がったらじゅうろく〉だから……あ、３桁目に繰り上がっ
たら〈にひゃくごじゅうろく〉だから、  0x100 は〈１にひゃくごじゅうろ
く〉、つまり 256 ！』
「じゃ 0x111 は？」
『えーっと、１桁目が 1 だから 1 、２桁目が 1 だから〈１じゅうろく〉
だから 16 、３桁目が 1 だから〈１にひゃくごじゅうろく〉だから 256 、
全部足すと…… 273 ！』
「そういうこと。つまり？」
『つまり、各桁で〈その桁の数ｘその桁に繰り上がる時の数〉を出して全部
足せばいいんだ！』
「そういうことだね。ちなみに〈その桁に繰り上がる時の数〉って簡単に求
められるんだよ。 16 x 16 は？」
『えっと、 256 。あ、２乗すればいいってこと？』
「〈進数の（桁数−１）乗〉で求まるから。ま、〈ひとつ下の桁が繰り上が
る時の数〉が、進数の数だけ集まって繰り上がるんだから、当たり前だけど
ね」
『２桁目から３桁目なら〈 16 になって繰り上がり〉が１６回あれば繰り上
がれる、だから 16 x 16 ね。そっちの方が分かりやすそう』
「でも桁数増えると大変だけどね」
『そしたら計算機使うもん』
「では同じようにして〈２進数〉の場合を考えてみましょう」
『にしんすう？』
「そう。まず、メモリのスイッチのオン・オフを、数字の 0 と 1 に置き換
えて考えます」

オフ : 0
おん : 1

『ってことはさっきの』 

オフ・おん・オフ・おん

『は』

0101

『ってこと？』
「そういうこと。スイッチはオンとオフのふたつしかないから、 0 と 1 だ
け。 2 とか -1 とかにはならないから」
『だから２進数？』
「そゆこと。そしてここからが大事。この２進数を１６進数に置き換えて考
える方法、っていうのが今回の焦点だったよね」
『そうそう、それ教えてもらわないと』
「じゃ、まず全部表として見てもらいましょう」

0000 : 0x0
0001 : 0x1
0010 : 0x2
0011 : 0x3
0100 : 0x4
0101 : 0x5
0110 : 0x6
0111 : 0x7
1000 : 0x8
1001 : 0x9
1010 : 0xA
1011 : 0xB
1100 : 0xC
1101 : 0xD
1110 : 0xE
1111 : 0xF

『う、なんか難しい……』
「えっとね、まず一番右の桁が、一番小さい桁」
『そだね、 0000 から 0001 って、最初に一番右のが増えてるもんね。これ
がひとつ増えると 1 なんだ』
「そう。それがもうひとつ増えると」
『 0010 。なんで？』
「２進数だから、 0002 にはならないで、繰り上がるから」
『繰り上がるから、２桁目が 1 になって、１桁目が 0 。この 0010 が 2 
なんだ』
「そう。これは、２桁目が 1 なら、１６進数なら 2 を足せばいいってこと」
『どゆこと？』
「その次の 0011 なら、１桁目が 1 だから 1 、２桁目が 1 だから 2 、足
して」
『 3 ！　そっか、２進数でも〈その桁の数ｘその桁に繰り上がる時の数〉
を全部足すっていうのは変わってないんだ』
「そういうこと。だからさっきの表を」

8421
0000 : 0x0
0001 : 0x1
0010 : 0x2
0011 : 0x3
0100 : 0x4
0101 : 0x5
0110 : 0x6
0111 : 0x7
1000 : 0x8
1001 : 0x9
1010 : 0xA
1011 : 0xB
1100 : 0xC
1101 : 0xD
1110 : 0xE
1111 : 0xF

「って書き換えれば、だいたい分かるでしょ」
『 8 4 2 1 って〈その桁に繰り上がる時の数〉のことだよね』
「そういうこと。この数字をその桁の数字に掛けちゃえばいいだけ。だから」

8421
0101 = 4 + 1 = 5

『あ、だからこれが 5 になるんだ！』
「じゃ、２進数で 01010101 は？」
『ぎゃ、８桁！？』
「こういう時は、４桁ずつ１６進数に変換するの」
『あ、なるほど。ってことは 0x55 になるから、 5 x 16 + 5 だから 85 ！』
「そゆこと。ちなみに２進数も【電卓】で計算できるから」
『確認できるんだ』
「っていうより、自分で色々試して、ある程度暗算で変換できるようにして
おいて」
『はーい』
「さて、整理します。まずメモリの中身は？」
『スイッチの集まり！』
「つまりスイッチのオンオフを直接数字として読むと？」
『……それが２進数ってこと？』
「そういうこと。つまりメモリには２進数として数字が書き込まれてます」
『それを見る時には、今みたいに１６進数や１０進数に変換すればいいって
ことなんだ』
「そういうことだし、 TRACE() に %X や %d を渡したらそう変換してくれ
るってことでもあるかな。要するに大事なことは」
『メモリは２進数！　１０進数や１６進数は見た目の変換ってこと！』
「そゆこと」

/*
    Preview Next Story!
*/
『でさー、理屈は分かるんだけど、暗算って結構難しくない？』
「誰だってそうだよ、これは。徹底的に練習してもいいし」
『いいし？』
「……ま、ずっとプログラミングしてれば自然とできるようになるでしょ」
『水希ちゃんはそうだったんだ』
「というわけで次回」
＜ Version 4.05 ビット操作 ＞
『につづく！』
「ま、プログラミングは理論知ってればいいってもんじゃないってことだね」
『本読んだだけじゃダメってことね。みんなも手を使って練習しよーね』


/*                       金菜さんの憂鬱                           */
http://www.kab-studio.com/Programing/KanaU/

アプリのツボ
#17 ユーティリティ

　ユーティリティアプリで一番難しいのは、シェルや OS ごとの「特殊な処
理」ね。ウィンドウズならシェルエクステンションに詳しくないと大変。英
文ドキュメントを熟読したり、色々試してみたり、しかもこういうのって
バージョンで動いたり動かなかったりするから大変かも。
　動かせるようになっても、うまくコントロールするのが難しいことも多い
かな。ユーティリティってシステムの内部に関わることが多いから、複雑
だったり特殊だったりして、プログラムとして処理するのが結構大変ってい
うのがあると思うのよね。ここを何とかするのが大変かも。
　ただ、その分開拓されてないこと多いから、そういう点ではお勧め。少な
いドキュメントをかき集めて、「特殊な処理」をするための API を使える
ようになって、ラッパークラスを作れば、それだけでかなりのアドバンテー
ジ、かな。

　でもユーティリティって、基本的に常駐させていつも使うものだから、使
いやすさやデザインが大事。「使いやすさ」は、カスタマイズができるよう
にしたり、いろんなアプローチ方法を用意することが大事。「アプローチ方
法」っていうのは、例えばホットキーとタスクトレイアイコンみたいに、操
作方法を複数用意するってことね。
　デザインは、できる限りシンプルにするのが一番かな。非表示にしてタス
クトレイアイコンだけにするとかね。それか、スキンタイプにするか。スキ
ンタイプなら、いろんな絵描きさんが色々作ってくれるかもしれないしね。

　これまでいろんな種類のアプリを見てきました。読んできて分かると思う
けど、作る上で一番大切なことは「もうあるものは作らない」こと。まずは
「誰かがもう作ってないか」探すことが大事。
　実際にプログラムを組む段階になったら、まず「 API を理解する」こと
が大事。 API が分かれば、たいがいのことはできるはずだからね。単純に
「これってどんな処理が必要なんだろう」ってことが、実は API が全部し
てくれるってこと、多いからね。
　API が分かったら「内部処理」の段階。これが面倒よね。でも、処理速度
とかが鍵になる場合には重要な部分。もちろんエラーが出にくくすることも
大事。内部でも「外部に見える部分」を重視するのが大事かも。
　最後に「他の人に任せた方がいい部分」もあるってことも大事。カスタマ
イズやスキンの付け替え、プラグインの追加とかのことね。ひとりのプログ
ラマーにできることは少ないってことを理解することが大事。まぁ、他の人
が作ってくれるようなアプリを作るのも大変だけどね。

　ま、言いたいことはひとつ。プログラムを作るってことと、アプリを作る
ってことは別ってことね。ソースコードを公開しないんなら、アプリを作る
ってういことにのみ、集中してね。

　次回からは「オブジェクト指向概略」。でもちょっとお休みするから、次
回はちょっと待ってね。


/*              ２０００年５月１日（月）の更新予定                */
http://www.kab-studio.com/Info/News/

・表紙を５月バージョンに！
　毎月恒例、新しい表紙です。
　って、今回もまだ描きかけ。果たして間に合うのか！？　いや、間に合う
まいにゃー（猫語）。


/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・プログラミングに関する質問は[鏑矢の憂鬱]にお送りください。
http://www.kab-studio.com/Programing/KabuU/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */


