English || XKeymacs | 7 つ道具 | Tips | JavaHelp | LilyPond | SlickEdit | 書評 | 落書 | リンク集

落書

ただの落書。
内容も以前は玉石混淆だったが、玉の部分は Tips に清書してしまったので、現在は玉の原石とただの石ころのみ。覚悟して読むように。(ぉ
タイトルが 2 つも 3 つも並んでたり、英語と日本語が併記されてるところがあるのは、いずれも検索エンジン対策(?!)です。この情報を知りたいときに、私だったらこんなキーワードで探すかなぁって言葉を連ねてみました。

目次からあぶれたページ
レシピ
ML 評
CD 評
リンク集 (一般計算機)
自機紹介

役立ちそうで役立たない(?!)リンク
NetRunner2001年8月号 - 特集5:ADSLモデム&ルータ全機種 ・全設定
158623 - [MNM] ファイアウォール経由で NetMeeting 接続 を確立する方法
Key Support, Keyboard Scan Codes, and Windows
C++: 水面下の仕組み
相場格言集
ブクログ -WEB本棚サービス-

人間万事塞翁が馬(じんかんばんじさいおうがうま)
私の座右の銘。
目先の利害に因われることなく、生きていきたいものです。

過ぎたるは及ばざるがごとし。ただし、酒だけは例外である。[Mark Twain (マーク・トウェイン)]
いや〜、良いこと言うねぇ。> マーク
この一言でファンになっちゃいました♪

幸福の秘訣は、自分がやりたいことをするのではなく、自分がやるべきことを好きになることだ。[James Matthew Barrie (ジェームズ・マシュー・バリー)]
The secret of happiness is not in doing what one likes, but in liking what one does.
これを突き詰めると、「幸福になろうとするのではなく、現在を幸福と定義することだ」なんて。実際そう定義してるのですが。> わたくし

簡単なことを完璧にやり遂げた人たちだけが、難しいことを難なくこなす能力を身に付けることができる。[Johan Schiller]
Only those who have the patience to do simple things perfectly will acquire the skill to do difficult things easily.

単純化せよ、ただし単純化しすぎるな。[Albert Einstein (アルバート・アインシュタイン)]
プログラムを書くときも同様ですな。

愚者は幸福を遠いところに求め、賢者はそれを足元に育てる。
The foolish man seeks happiness in the distance, the wise grows it under his feet.
「青い鳥」を探し続けてる私に、自戎の意を込めて。


畳と情報は新しい方が良いなんて、昔の人はうまいこと言ったもんで……。

ダチョウアルゴリズム (Ostrich Algorithm, Ostrich Policy)
めったに起こらない異常事態を無視すること。Deadlock の方から来た言葉。
本当は無視しちゃいけないんだけど、起きる頻度や、起きたときの影響、それに解決するのに必要なコストを考慮して、プライオリティを下げる (つまり、なにもしない) ことを「ダチョウアルゴリズムで対処する」と呼ぶ。
ダチョウは砂嵐に逢うと、砂の中に頭を隠して砂嵐が過ぎるのを待つことから。
A: 大地震の備えは?
B: ダチョウアルゴリズムで……(いざとなりゃ小学校のプールの水でも飲んどきゃ良いや)
みたいな感じ。 < ほんとか?!
(cf. 頭隠して尻隠さず The foolish ostrich buries his head in the sand and thinks he is not seen.)

ロシア方式
普段は気が付かないふりをしておいて、問題が起こってから考え始めること。
英語では We'll cross that bridge when we come to it. と言うとか言わないとか。
<-> 転ばぬ先の杖 (An ounce of prevention is worth a pound of cure.)

この世界には二進数を理解する人と、それを理解しない人の 10 種類の人がいる。
"There are only 10 types of people in the world: Those who understand binary, and those who don't"
野暮な絵解きをするならば、10 と書いて二と読めるか、ということでしょうか。そこはかとなく面白い。

Hollywood Principle
Don't call us, we'll call you.

黒い猫でも白い猫でも、鼠を捕る猫は良い猫だ。
トウ小平氏の「猫論」
不管黒猫白猫 捉住老鼠就是好猫
良い言葉だ。解釈によっては。

これを知る者は、これを好む者に如かず。これを好む者は、これを楽しむ者に如かず。
『論語』の「雍也篇」にある孔子の有名な言葉
原文
「子曰、知之者不如好之者、好之者不如楽之者。」
意訳
「仕事がつまんなきゃ、辞めちまえ!」
「楽しくもない勉強をするのは、勉強に失礼だ!」
他多数

如く(しく)
及ぶ、肩を並べる、匹敵する。
如くは無し(しくはなし)
及ぶものはない。

神は我々に、言いようのないほど大切なものを三つ与えた。それは言論の自由、思想発想の自由、そしてそのどちらも行使しない思慮分別である。
It is by the goodness of God that in our country we have those three unspeakably precious things: freedom of speech, freedom of conscience, and the prudence never to practice either of them.
Mark Twain の言葉。どっかの国のマスコミに聞かせてやりたい。

6 歳の子どもに何も期待できないならば、あなたは何もわかっていないのだ。[Albert Einstein (アルバート・アインシュタイン)]
意味深すぎてよく解らないんだけど、相対論が解る人には解るんだろうな。(謎

虎死留皮 人死留名
虎は死して皮を留め、人は死して名を残す
ライオンは死してハミガキを残……さないって。

忌まば忌む、忌まべば忌まむ。「忌む」という字は「己の心」の持ちよう次第。

一見栄、二男、三金、四芸、五精、六おぼこ、七科白、八力、九肝、十評判。
(いちみえ、におとこ、さんかね、しげい、ごせい、ろくおぼこ、ひちせりふ、やちから、きゅうきも、とひょうばん。)
男のもてる条件。このうち一つでも身に備わってれば、女ができると言われる。

一心、二物、三技、四根。五力、六論、七盗、八殺し。
(いっしん、にぶつ、さんぎ、しこん、ごりき、ろくろん、しちとう、やつごろし)
博打打ちの条件。どれだけ負けても開き直れたり、どれだけ負けても困らないほどお金があったり、余程技術があったり、根性があったり、力ずくでふんだくる程の力があったり、口達者だったり、相手の目を盗んで細工ができたり、いざとなったら相手を殺したりくらいの気構えがないのであれば、博打はするなという教え。
cf. 丁半指南

RTFM
建前
Read The Fine Manual.
(他人に聞く前に、)良いマニュアルを読みなさい。
本音
Read The Fucking Manual.
できの悪いマニュアルでも読んでろ。(俺は知ってるけど、お前なんかに教えてやんないよ。:-P)

KISS
建前
Keep It Simple and Small.
(Keep It Short and Simple.)
問題は単純に小さく切り分けなさい。
本音
Keep It Simple, Stupid.
簡単なことを難しくするんぢゃねぇ、馬鹿野郎!
真理
汎用性を求めれば求める程、コードは複雑になり、バグは増える。そして、汎用性の恩恵を受けることはまずない。
結論
汎用性なんぞ無視して、できる限り単純で解り易いコードを書こう。汎用性のあるコードのバグ取りよりも、解り易いコードの拡張の方がよっぽど楽である。

halt [ho':lt]: ホールト(ハルトではない)。停止する。Linux を落とすコマンド。

radix [re'idiks]: 基数、根。2 とか 8 とか 10 とか 16 とか……。 < なんか違う?!

Alt: alternate の略。

typo [taipou]: TYPOgraphical erro の略。誤植。

BSOD: Blue Screen Of Death の略。

ABEND [a'bend]: ABnormal END の略。異常終了。

ASAP: As Soon As Possible の略。できるだけ早く。早急に。

NDA
nondisclosure agreement
機密保持契約、守秘義務契約

TBD: To Be Determined の略。未定。未使用。

IME: Input Method Editor の略。
An IME is a program that allows computer users to enter complex characters and symbols, such as Japanese characters, using a standard keyboard.
つまり、IME は普通のキーボードで日本語みたいな複雑な文字を入力するためのプログラムだと。

OOP: Object Oriented Programming の略。

HBA: Host Bus Adapter の略。SCSI card 等の総称。

RAID: Redundant Array of Independent Disks の略。 <-> JBOD

JBOD: Just a Bunch Of Drives の略。 <-> RAID

PnP: Plug aNd Play の略。決して Plug aNd Pray の略ではない(らしい)。

cf. [kэmpe'э(r)]: ラテン語の confer の略。compare。比較せよ。……を参照。

w/o: without の略。

AKA, a.k.a.: Also Known As の略。

電子メール
e-mail, E-mail, email, Email, em, EM, electronic computer originated mail, ECOM, E-COM, electronic mail

e-mail <-> s-mail (snail mail)
e-book (electronic book) <-> deadtree book, dead-book

Basic: Beginer's All-purpose Symbolic Instruction Code の略。確か、日本語ベースでも書ける唯一のプログラミング言語だった気が。
FORTRAN: FORmula TRANslation (数式変換)の略。別名、スパゲティ製造装置。(嘘

addendum
追加したもの、付録、補遺、アデンダム

measurement
寸法、量、大きさ

dependency
依存物

concern
懸念、心配
先輩に「他になにか concern はありますか?」って聞かれる。
「concern ってどういう意味だったかしら?」ってのが一番の concern だったり。(爆)

comment out
コメントアウト、コメントとして除く

as is
現状(維持)のままで、現品で、現品限り、正札どおり、無条件受け取り、無保証で
今後なにもしないし、現状も理解してないときに、「as is で」などと使う。

feel free to
遠慮{えんりょ}なく〜する、自由{じゆう}に〜する、気楽{きらく}に〜する、気兼ねせずに〜する
If you have any questions or comments, please feel free to contact me.

raison d'etre
《フランス語》レーゾンデートル、存在理由{そんざい りゆう}、生きがい

パーズする、パースする
構文解析を行う。parse より。

ジェネる
生成する。記述する。generate より。

ネグる
無視すること。neglect より。

サチる
飽和させる。飽和状態にする。平衡状態にする。転じて、頭打ちになる。saturate より。

オミット
省略する、除外する、削除{さくじょ}する、怠る、抜かす、忘れる。omit より。

Press any key
any という key ではなく、なんか key を押してくれということなのだが、以下のキーは "any key" ではない。
Alt, Caps Lock, Ctrl, Fn, NumLock, Pause, PrintScreen, ScrollLock, Shift, ひらがな, 変換, 無変換

Q. (ぉぃ を英語に訳しなさい。
A. (xoxi

GIF (Graphics Interchange Format)
ジフ
この読み方は、一生覚えられんな。(いつもジフかギフか解んなくなる)
また、Unisys社問題があるので、できれば使いたくないフォーマット。

役不足
その人の力量にくらべて、役目が軽すぎること。最近、これとは正反対の意味として誤用されることも多い。

はじめに、序章、緒言
一番書き難い割には誰もまともに読まない文書の総称。(ぉぃ

漸く
ようやく
と読むのだと。読めんわなぁ。俺だけ?! IME な弊害 (これも読めても書けんな (^^; ) な気がするんだが。

左利き
大工が右手に槌(つち)を、左手に鑿(のみ)を持つことから、鑿手を呑み手にかけて、酒呑みを左利きと言うようになったとか。
でも、ほんとに左利きだったら、鑿は右手に持つんぢゃないかと思ったり……。
左党
左利きの仲間。すなわち酒呑み。
虎、大虎
笹に虎から、笹と酒(ササとも言う)をかけて。寅の刻 (午前4時) まで呑むからという説も。

ML の書き出し:
Hi Folks,
Hello.
Hi,
Hi all.
みなさん、こんにちは。
ML の末尾:
Cheers
Thanks.
Thanks in advance.
Thanks & Regards
regards,
それでは、
いずれもスレッドを起こすときは付けるものの、返事を書くときは特に後者は略されることが多い。

風が吹けば桶屋が儲かる
風が吹く -> 埃(ほこり)が舞う -> 盲人が増える -> 三味線が売れる -> 猫が減る -> 鼠(ネズミ)が増える -> 鼠にかじられた桶も増える -> 桶屋が儲かる

歯は命より大切?
命は粗末にしても一生使えるが、歯は大切にしないと一生使うことはできない。

油売りの少年: 手は動かさないくせに口だけは良く動く人達の総称。
マッチ売りの少女は健気だけど、油売りの少年は……。

foo でも良いかとは思う。
foo でも良い(のではない)かとは思う(けれども、私ならそうはしないね)。
「んなことしねーよ」の丁寧語。

怪しげ(?!)なカタカナな効果
ピグマリオン効果: 人は期待された様に育つ
ブラシーボ効果: 信ずるものは救われる

同音異義語
飴と鞭/雨と無知
悪の十字架/開くの十時か。
恐怖の味噌汁/今日、フの味噌汁。
青い血/あぁ美味ち。
悪魔のぬいぐるみ。/あ、熊のぬいぐるみ。

勧誘電話の断り方
1. 税金対策な電話
「わたし、税金払うの趣味なんですぅ。」
2. 英会話 & パソコン教室
「わたし、どちらも得意なんで……。」
3. 部屋の掃除
「うち、いつもきれいですから……。」
4. 家の補修
「ダンボールハウスでもやっていただけるんですか?」(ぉぃ
「貸家なもんで、勝手にいぢれないんですぅ。」
5. 宝石
「私、烏と違って、光るものを集める趣味はないんですぅ。」
「もう、腐る程持ってるので……。」

国際免許、でかい。
てっきりクレジットカードサイズかと思ってたら、厚紙を 3 つ折りにしたようなしろものを渡される。
畳んだ状態でも、到底財布には入らない。
こんなもんどうやって携帯しろと。
どこに speak up すりゃ良いんぢゃろか。

二日酔いにならない方法。
水をがつがつ呑みつつ、夜更しする。

私のメモリ
私の脳味噌には 4 bytes しか記憶領域がないことが判明。
ファイル名がアルファベットの羅列なとき、
人と話すのに、ユニークな部分の 2 bytes しか出てこない。
落ちついて考えれば、3 文字くらいなら苦なく覚えられるはずなのだが
(「たったそれだけかいっ!」つー突っこみは却下)、
1 文字分は '…' に費やされるらしひ。
で、NULL terminate も含め(ても良いのか?!)、私の頭は 4 bytes。:-(

好きな言葉
大胆かつ繊細に。
石橋を叩いて叩き壊せ。
徐かに急げ。

英語学習の観点から観た映画評
ユー・ガット・メール (You've got mail)
スターバックスでのコーヒーの買い方はばっちし。メールの書き方も?口説き方も??
エリン・ブロコビッチ (Erin Brockovich)
上司に "What's up?" と言いたい人に。ボーナスが 2 億円欲しい人にも?
プリティ・ウーマン (PRETTY WOMAN)
フランス料理の喰い方が覚えられる?!
ライジング・サン (RISING SUN)
アメリカ人の日本観を知りたい人に。比較文化論的価値有?!<- なんか中国語みたい。
---
以下、英語の勉強に役立たない(たいていはセリフの少なすぎる)映画
クリフハンガー (CLIFFHANGER)
アルマゲドン (ARMAGEDDON)
スター・ウォーズ エピソードI ファントム・メナス

スピード違反についての調査レポート
Keyword: 道交法(道路交通法)、交通違反、速度超過、最高速度
目的
スピード違反とはなんぞや?という素朴な疑問を解消する。
方法
インターネットを用いて、乗用車運転時におけるスピード違反の経験則について、幅狭く聞き取り調査を実施。
結論
最高速度 + 30(40) キロ以下では捕まることはない。
最高速度 + 35(45) キロ以上では捕まることがある。ただし、速度超過は実際の速度から 10 キロ引かれる。
※括弧内は高速道路。また、雨天速度制限時は、上記の限りではない。
補記
捕まるのは「瞬間速度」が最高速度を上回っていることが確認されたときのみ。平均速度が最高速度を著しく上回っても捕まることはない。このようなことは一般道ではまずないが、高速道路で渋滞に遭遇することなく休憩も取らずに走り続けると、その様な状態になることがある。(ちなみにアメリカでは、平均速度に依る速度超過で捕まることもある。)
まとめ
みなさん、安全運転を心掛けませう。スピード違反の取締りは、あくまで手段であって目的ではありません。目的は事故の撲滅。スピードに因われることなく(?!)、事故を起こさぬ運転をば。(ただし、中には勘違いした警察官もいて。物影に隠れてスピード違反の車を探してたりするまぬけも。そんなことしなくても、目立つ格好でつっ立ってれば、みんながいつも以上に慎重に運転して、事故も減り、みなが幸せになれると思うのだが……。そんなに点数稼ぎをしたいのだろうか。 > 隠れんぼが好きな警官)

落語
とにかく面白い噺
五貫裁き(上)五貫裁き(下)厄払い天災花色木綿(出来心、できごころ)、テレスコ
一般常識として知っておきたい噺
長名(寿限無 )、壺算時うどん(時蕎麦)、餅屋問答(蒟蒻問答)、饅頭こわい佐々木裁き桃太郎始末の極意
きれいに落ちる噺
馬の尾(馬のす)、しの字丁稚はてなの茶碗二人ぐせ二番煎じ
好きな噺
鹿政談抜け雀
※上記のリンクは全て【上方落語メモ/目次】のものである。本来リンク集のページに載せるべき内容であるが、諸般の事情によりリンク集は XGA でもスクロールすることなく表示させたいので、ひとまずここに載せた。

天災より
「なる堪忍は誰もする。ならぬ堪忍、するが堪忍」「堪忍の袋を常に首へ掛け、破れたら縫え、破れたら縫え」
「気に入らぬ風もあろうに柳かな」「むっとして帰れば門の柳かな」「風の吹く方を後ろに柳かな」
「孝行のしたい時分に親は無し、さればとて墓 に布団も着せられず」
こうこうの...こうこうの漬けたい時分にナスは無し...かといってきゅうりも生ではかじられぬ

薮にもなれない筍医者

NT のセットアップディスクの作り方
NT の CD の i386 ディレクトリにある winnt32.exe を用いて
winnt32 /ox
すれば良い。
InternetとWindowsの最新技術をやさしく
Windowsの修復対策

Windows 上における CVS クライアントの環境構築
Keyword: Concurrent Versions System, CVS, WinCVS, SSH
CVS とはファイルのバージョンを管理するシステムである。XKeymacs では、source code の履歴を管理するのに、始めは、Microsoft の Visual SourceSafe を利用して、ローカルで全てを管理していた。しかし、SourceForge Project Info - XKeymacs を利用することになり、CVS を使いこなす必要がでてきた。ここに、Windows 上で CVS を利用できる環境を構築するまでの道のりを記す。
バージョン管理システム CVS を使う を見てみると、Windows で CVS を利用するには、どうやら WinCVS というのを利用するのが一般的らしい。WinCVS 1.2のShift-JIS ごった煮版とか knjwrp patch というものも存在して、これらを利用すると日本語のコード(Shift-JIS とか EUC とか) の問題が解消したり、メニューが日本語になったりするようなのだが、そもそもサーバはすでに存在して私が使うのはクライアントだけだし、外人さんが利用することを考えると本家 CvsGui.org にあるクライアントで動かないことには意味がないので、今回は CvsGui.org から実行ファイルを取得することにする。
2002年2月2日現在の最新版 (w/o beta version) である WinCvs 1.2The CvsGui project の File List から取得、解凍し、setup.exe を実行すると、インストールは問題なく完了。さっそく WinCVS を起動してみると、WinCvs Preferences というダイアログがでてきて、なにやら入力しないといけない様子。"General" タブから他のタブに移ろうにも、"Enter the CVSROOT:" を空にしてると "Please enter more than 1 character" とお願いされるので、とりあえず "/" としておく。"Authentication:" の欄はデフォルトでは "Local mounted directory" となってるので "SSH server" に変更。"RSA identify:" は良く解らないので取り敢えず保留。 "Use version:" は "cvs 1.10 (Standard)" と "cvs-1.10 (NT server)"が選べるが、NT server ってこともないだろうから、デフォルトの Standard のままにしておく。
ここで、どのみち SSH は使う必要があるので SSH with WinCvs. を参考に SSH の設定を行うことにする。まず、このサイトに言われたように ftp://ftp.ssh.com/pub/ssh/ から SSH を入手しようとすると、
+-----------------------------------------
|FTP フォルダ エラー
+--------------------
|(X) FTP サーバーのフォルダを開こうとしてエラーが発生しました。このフォルダへのアクセス権があるかどうかを確認してください。
| 詳細:
| 200 Type set to A.
| 200 PORT command successful.
| 425 Can't build data connection: Operation timed out.
| [OK]
+---------------------------------------
と怒られる。しかたないので Google で ssh-1_2_14-win32bin.zip を探して適当なところから入手する。ファイルの大きさが 116,798 バイトなら、問題ないはず。これを解凍し、でてきたフォルダを ssh とリネームして C:\bin に置く(名前も場所もどーでも良いんだけど)。その後、Windows 9x ならば、AUTOEXEC.BAT に次の 2 行を追加し、OS を再起動する。
---
SET HOME=C:\BIN\SSH
SET PATH=%PATH%;C:\BIN\SSH
---
Windows NT ならばコントロールパネルにあるシステムを開き、環境変数を設定するところで HOME を作成し、PATH に SSH のパスを追加する。SSH が無事に使用できることを確認するためにコマンドプロンプト(もしくは、MS-DOS プロンプト) を開き、次のコマンドを実行する。
ssh -l xkeymacs xkeymacs.sourceforge.net
ここで xkeymacs は username、xkeymacs.sourceforge.net は cvs-server-host。このコマンドを実行してパスワードを聞かれたら成功。
SSH が使えることを確認し、再び CVS の設定へ。まず、HOME ディレクトリに ".ssh" というディレクトリを作成する(と SSH with WinCvs. には書かれてるが、実際には、すでにある。もしなければ、コマンドプロンプトで mkdir .ssh とすれば、ドットで始まるディレクトリを作成できる)。そして公開キーを作成するために、コマンドプロンプトを開き、C:\BIN\SSH に移動し、以下のコマンドを実行する。
ssh-keygen -C oishi@cam.hi-ho.ne.jp -f ./.ssh/identity
すると passphrase を聞かれるが、単に Enter を押すことで切り抜ける。次にいま作った公開キーをサーバに教える。
scp ./.ssh/identity.pub xkeymacs@cvs.xkeymacs.sourceforge.net:identity.pub
パスワードを聞かれるんで、ちゃんと答えると "Welcome to cvs.sourceforge.net" と歓迎される。そこで、ssh のコマンドを使って、サーバにログインする。
ssh -l xkeymacs xkeymacs.sourceforge.net
すると、
This is a restricted Shell Account
You cannot execute anything here.
と怒られる。つまり、禁止されとるシェルアカウントだから、なにも実行できんと。明らかになにかが間違ってる気がするのだが、取り敢えずは気にせずに次に進んでみる。
再び、WinCVS の設定。WinCVS を起動し Admin menu から Preferences... を選択。General tab で CVSROOT を xkeymacs@cvs.xkeymacs.sourceforge.net とする。authentication は SSH server にする(これはすでにやったな)。WinCvs tab の下の HOME folder を C:\BIN\SSH とする。ここで、WinCVS のメニューを Admin -> logon と辿って logon しようとすると、Set the password authentication first in the preferences! と怒られるんだな。
う〜みゅ、道は険し。
初心に戻って、SourceForge Project Documentation を眺めてみると、ちゃんと "7. CVS - OS Specific Information" なんて項目がある。そこを眺めて再出発。まずは Win32/CVS/SSH Guide の内容より一部抜粋。
設定
SSH
1. どこかパスの通ったところに、SSH のファイルを解凍する必要がある。すでにパスが通ってるところに解凍するか、新しいパスを作成し AUTOEXEC.BAT ファイルに追加してください。例えば、もしあなたがそれらのファイルを C:\usr\bin に置くのであれば、そのときはこれをあなたの AUTOEXEC.BAT ファイルに追加しなさい:
PATH C:\usr\bin;%PATH%
今後このディレクトリを "バイナリディレクトリ" と呼ぶことにします。
2. SSH や他のソフトウェアがあなたの設定を保存する場所、"home" ディレクトリが必要です。これはどこでも良いのですが、指定するために AUTOEXEC.BAT ファイルに環境変数を加えなければなりません。
SET HOME=C:\home
(または、あなたが home ディレクトリにしたいどこか)
3. HOME ディレクトリのあるドライブに、\etc ディレクトリを作らなければなりません。上記の例の場合は、C ドライブに etc という名前のディレクトリを作ってください。
c: mkdir \etc
4. この新しいディレクトリの中に "passwd" という名前のテキストファイルを作ってください。そのファイルには次のような行を記述してください:
bsimser:x:1:10:Simser, Bil:d:/home:c:/windows/command.com
各項目はコロン(":")で区切られてます。最初の項目はあなたの SourceForge での username です。全ての文字が小文字であることを確認してください。その次の 4 つの項目は気にする必要ありません。6 番目の項目は、ステップ 2 で設定した HOME ディレクトリのパスです。これはドライブレターを含みますが、昔の DOS で使われてた "\" の変わりに "/" を使うことを覚えておいてください。次の項目は DOS 窓(Windows 95/98 では command.com、Windows NT では cmd.exe) のパスです。この項目は使用されませんが、設定しておかなければなりません。
5. 環境変数を更新するために、OS を再起動してください。
6. SourceForge に接続する準備が整いました。MS-DOS プロンプトから次のコマンドを実行してください。
ssh -l <user_name> projectname.sourceforge.net
<user_name> はあなたの SourceForge の username で置き換えてください。もしこれが最初の接続ならば、SSH がそのホストを既知のホストに登録してるというメッセージが表示されるでしょう。
7. プロンプトのところに、あなたのパスワードを入れてください。おめでとう!あなたは今、SSH 経由で SourceForge にログインできたはずだ。
SSH はあなたが最初に SourceForge にログインした際、".ssh" という名前のディレクトリを HOME ディレクトリに作るだろう。このディレクトリには2 つのファイルがある。"random_seed" はただのバイナリファイルなので、それについては気にするな(もしあなたがそれをなにに使うか知ってたら、私に知らせてください)。SSH 経由で SourceForge にあるプロジェクトにログインするたびに、"known_hosts" というバイナリファイルに項目が足されていくだろう(あなたがいつログインしたか記録している)。繰り返しになるが、このファイルがなんのために使われてるか良く知らないんだ。
CVS
標準的なコマンドラインの CVS クライアントを使用することもできるし(こちらを推奨する)、GUI を持つものを利用することもできる。
コマンドライン
1. CVS コマンドラインバージョンの Windows 版をここからダウンロードする。
http://download.cyclic.com/pub/cvs-1.10/windows/cvs-1.10-win.zip
(訳注: 上述のサイトは http://www.cvshome.org/ に飛ばされるだけだったので、http://www.cvshome.org/dev/codewindow.html から http://ftp.cvshome.org/win32/cvs1-11-1p1.zip を入手。)
2. バイナリディレクトリにコマンドラインバージョン (cvs.exe) を解凍する。SSH と同じディレクトリで構わない。
3. AUTOEXEC.BAT に次の環境変数を追加する。
SET CVSROOT=username@cvs.projectname.sourceforge.net:/cvsroot/projectname
SET USERNAME=username
SET HOMEDRIVE=d:
SET HOME=\home
SET HOMEPATH=\home
SET CVS_RSH=ssh
SourceForge の username, projectname、それに SSH のインストールに用いた HOME, HOMEPATH は適宜変更すること。
4. これで、手元のソースコードを SourceForge の CVS にアップできるようになりました。次のように、手元のハードディスクにあるあなたのプロジェクトのトップディレクトリに行きなさい: (読み易いように、行が分割されてます。それらを一つのコマンドとして打ち込むべきです。'\' は行末を示してますが、これを打ち込んではいけません。
cd \src\myproject
cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname \
import directoryname vendor start
このように username と projectname の代わりに、プロジェクト名を利用したくなるだろう。directoryname は新たに作られるディレクトリの名前である。
5. 最新のコードをチェックアウトするには、次のコマンドを使用する:
cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname \
co projectname
最初にチェックアウトすると、その後は、このディレクトリの中に入ったり、-d オプションを付けずに CVS のコマンドを実行したりできる。例:
cvs update
cvs commit -m "comments for this commit"
cvs add myfile.c
(「このディレクトリの中に入ったり」の訳はかなり怪しいっす。原文は「After the initial checkout, you can change into this directory and execute cvs commands without the -d option.」
WinCVS GUI frontend
1. Windows GUI クライアントをここからダウンロードする。
2. そのファイルを適当なディレクトリに解凍し、SETUP.EXE を実行する。
3. WinCvs クライアントを起動する。
4. Admin メニューから Preferences... を選択し、プロジェクトの CVSROOT を入力する:
username@cvs.projectname.sourceforge.net:/cvsroot/projectname
5. CVS にログインするために、Admin メニューから login を選択する。そうすると、SourceForge のパスワードを聞かれるだろう。
6. あなたはいま GUI 上で、メニューからソースコードのチェックイン/チェックアウトを行うことができる。

普通の人と廃人^H^Hプログラマーの見分け方。
- 食事の前に手を洗うのが普通の人。食事の後、キーボードを触る前に手を洗うのがプログラマー。
- 他の人がひたすらタイピングしてるのを見て。「仕事をしてるなぁ」と思うのが普通の人。「また、凝りずにバグを埋め込んでらぁ」と思うのがプログラマー。
- マウスを器用に操る人を尊敬するのが普通の人。マウスを一切使用せずにやりたいことを成し遂げる人を尊敬するのがプログラマー。
- 音楽を聴きながら仕事をしているとき。良心が痛むのが普通の人。音楽聴きながら読み書きできないようなコードはバグの巣だと思うのがプログラマー。
- 四捨五入なんて小学生でもできると言うのが普通の人。四捨五入ほど難しいものはないと言うのがプログラマー。
- "A or B and C." という文を見て。(A or B) and C. なのか A or (B and C). なのかを文脈から判断するのが普通の人。A or (B and C). と信じて疑わないのがプログラマー。
- 「天才とは1パーセントのひらめきと99パーセントの汗」と思うのが普通の人。「1パーセントのひらめきと99パーセントのコーヒー」と思うのがプログラマー。
- 呑み会において。「好きな俳優は?」と聞かれたときに喜々と答えるのが普通の人。「好きな言語は?」と聞かれたときに喜々と答えるのがプログラマー。

小説家とプログラマの共通点
双方とも一番悩むのは、誰でも考えられることである。
小説家は主人公を始めとする登場人物の名前や地名で悩み、
プログラマは関数名や変数名をなんにするかで悩む。
どちらも悩まず付けると筋は通っていても、とても読めたものぢゃなくなる。

オープンソースについて
利点: みんなが同じ問題について試行錯誤しなくてすむので一見生産性が上がる。
欠点: みんなが同じ間違いを繰り返すので質が落ちる。
Ex. タスクバーのポップアップメニュー。
Windows 附属のもの(w/o IME)は右クリックが_上がる_ときにメニューがでる。その他大勢のフリーソフトは右クリックが押されたとき(上がる前)にメニューがでる。Windowsユーザーインターフェイスデザインガイド でも「7.1.4 ポップアップメニューの操作」のところに「ボタンを離すと、ポインタの右下にメニューが表示される」と明記されているし、MSDN でも RBUTTONUP を使った方が良いと明記されてるにもかかわらず(cf. Visual C++-MFCに関するFAQ)、このようになってるのは皆がポリシーをもって Microsoft に反逆してるわけではなく、単に写した元がそーなっていたから(だと思う)。
こういった弊害を無くすためには……、気付いた人(この場合は私)が気付いたとき(つまり ASAP)に一人でほくそ笑むのではなく、誤ちを指摘してみなでより良くしていけば良いんだろうな。悟るだけは悟ったんで、あとは実行あるのみ。

プログラムとはなんぞや
プログラムとは 0 個以上の関数を呼ぶことである。
関数とは 0 個以上の文のを中括弧でくくったものである。
文とは 0 個以上の文字の最後にセミコロンを付けたものである。
たったこれだけのこと。
おまけ
世の中で一番短い C のプログラム
main(){}
これより短いプログラムがあるとしたら……、きっと虫にでも喰われたんでしょう。

ソフトウェアを書くことは
農耕をしたり、狼男をハンティングしたり、タールの沼でダイノサウルスと共に溺れ死んだりすることに似ている。[Fred Brooks (フレッド・ブルックス)]
白雪姫と 7 人の小人を撮影するようなものだ。[Paul Heckel (ポール・ヘッケル)]
サイエンスである。[David Gries (デビッド・グリス)]
芸術である。[Donald Knuth (ドナルド・クヌース)]
プロセスである。[Watts Humphrey (ワッツ・ハンフリー)]
システムである。[Peter Freeman (ピーター・フリーマン)]
数学問題を解くような、外科手術を執刀するような、あるいは豚を解体するようなものだ。[Harlan Mills (ハーラン・ミルズ)]
大西部を探検するように冷たい流れで水浴し、キャンプファイアの回りで豆を食べるようなものだ。[Mark Spinrad and Curt Abraham (マーク・スピランド カート・アブラハム)]
薮漕ぎのようなものだ。[わたし]
※薮漕ぎ: 登山形態の一種。登山道ではないところ(つまり、薮)を、地図とコンパスを片手に歩き回る。

Brian W. Kernighan, Dennis M. Ritchie 曰く、
The only way to learn a new programming language is by writing programs in it.
新しいプログラミング言語を学ぶ唯一の道は、それでプログラムを書いてみることである。
たしかに真理なんだけど……。
言語を理解する前に書いたコードって、とても読めたもんぢゃないんだな。
その良い例が拙作 XKeymacs。
C++ も MFC も DLL も……、ともかく全てを知らないときに書き始めたんで、なんかとんでもないことに。さらに、リファクタリングを知らないときに XKeymacs をリファクタリングしたら(version 1.99x)、まともに動かなかくなった。おかげで、いろいろ学ぶことだけはできたのが唯一の救いか。

プログラムを書くための時間配分。
構想に 2 割。
コメント作成に 4 割。
函数名、変数名等の決定に 4 割。
コーディングに 1 %。

Bug
バグの 2 割は、< を <= にすれば直る。また、格好^H^H括弧を付けるだけで直ることも多々。

bug とゴキブリは……、一匹いたら、十匹いると思え。

新機能を提案する顧客を簡単にあしらう方法
「なんと、それはすばらしいアイデアのようですね。その機能は要求仕様書には記載されてませんから、スケジュールを変更してコスト算出をやり直しましょう。それからその機能追加を今やるかあとでやるかを判断してください。」と宣う。

新発見。
VGA + 21 インチモニタは目に良い。
が、VC++ で 1 ページに 35 行しかコードを表示できない。

GNUコーディング・スタンダード - Table of Contents
XKeymacs は GPL を唱ってる割に(?!)、全然これに従ってないことが判明。
つーか、かなり古くさい面も見られる。
「C以外の言語の使用は標準的でない機能を使うようなものだ。」とか。
ま、C が良い言語であることは否定しないけどさ。
確か、Keymacs も C だったし。
でも、XKeymacs を MFC も使わずに全て C で書くとしたら……、
できないことはないか。
だが既存のライブラリを使用して楽するのが私のポリシー♪
(ただし、パフォーマンスのネックにならぬときに限る。)

世界に通用するアプリケーション開発の方法とその意義
方法
1. ふつーにつくる。
2. 英語リソース(メニューやらダイアログやら)も作る。
XKeymacs の場合は英語が先だった。Keymacs 利用時に英語版の Windows で文字化けして寂しい思いをしてたから。
3. 英語のドキュメントも作る。翻訳サイトで訳しても可か。とにかくこれが存在することが大切。
4. てきとーに宣伝。
意義
外人さんから、要望のメールが来て、優越感に浸れる。
Giapponese がどーのこーのと評されたりする。<- がんばって調べたら、どーやらイタリア語らしひ。
まぁ、戯れ言はともかく、利用者が多いとバグの発見も早いし、新機能の要望も増えるし。
実際 XKeymacs でも C-x C-p なんて利用者から教えてもらうまで知らなかったのに現在ぢゃ愛用してるし、
外人さんから、「コードを読んでみたんだけど、ここはこーすると良いよ」とアドバイス貰ったし。
とゆーわけで、ちょっと頑張ってインターフェースとドキュメントを英語化すると、ちょっと幸せになれるかと。

半年で 10,000 hit するサイトの作り方
本サイトもおかげさまで、2001 年 6 月下旬に開設して以来、およそ半年で 10,000 hit を達成し、現在も毎日 100 hit 程度のアクセスがあります。ここに、そのような人が来てくれるサイトを作るノウハウを思い付くままに挙げておきます。
1. 世界に発信する価値のある情報を載せる。
もともと、このサイトは自作フリーソフト XKeymacs を公開するために作成しました。英語(というか、英単語の羅列)のページも作成したので、日本のみならず外国でも紹介され、アクセスが増えました。
2. 検索エンジンに登録する。
私自身、他の人のサイトに行くのは検索エンジン経由がほとんどなので。
3. キーワードをちりばめる。
このサイトはホームページ以外のページは、言わば撒き餌のようなもので、Google なんかで検索したときに引っかかることで人を寄せ集めるだけのために作りました。これもある程度は成功したようで、実際 Google で "ダチョウアルゴリズム" とか "ロシア方式" とかをキーワードに検索するとかなり上位に現れます。この方法のこつは、実際来て欲しい人が興味を持ちそうな言葉を用いることと、有名すぎず無名すぎない言葉を利用することです。将来的には XKeymacs で用いたコードの解説をサイトに載せることで、さらにアクセスを増やせるのではないかと考えてます。
番外. 小さいページを量産する。
検索エンジンはページのタイトルや冒頭の言葉に弱いので、人を集めるためだけであれば小さいファイルを沢山作ると良さそうなのです。ただし、やりすぎるとサイトの作者のセンスが問われそうなので実践はしてません。

ピラミッド
XKeymacs をダウンロードする人が何万人かいて、
XKeymacs を日々利用する人が何千人かいて、
XKeymacs ML に入る人が何百人かいて、
XKeymacs に要望を言う人が何十人かいて、
XKeymacs のコードを眺める人が何人かいて。

XKeymacs の広告草案
「弘法筆を選ばず」なんて言いますが、
「毛のない筆では字は書けぬ」とか「毛のない筆は筆でない」なんて言葉もあることですし、
「Emacs なキーバインドの利用できないエディタはエディタにあらず」というわけで、
弘法を目指すあなたにも XKeymacs を利用していただければと思います。
う〜ん、いまいち。

html をメモ帳で書いてはいけないわけ。
メモ帳で長文を書くと、意図しないところに改行が入ることがある。
html では (<pre> タグでも使ってない限りは) 改行も他のホワイトスペース同様、
「一つのスペース」扱いされる。
英語のソースを書いてるときは、単語間にしろピリオドの直後にしろスペースを入れるので、
意識的にそこで改行しておけば、そう問題は起こらない。
一方、日本語では、文中に英単語でもでてこない限り、そう滅多にスペースを入れるものではない。
また、頻繁に英単語がでてくる文章であったとしても、その度に改行し、行末では改行しないのでは
読み易いソースにはならない。
つまり、Windows 上で html file を編集する際はメモ帳を使わずに meadow や mule for win 等を使うべきである。

THE C PROGRAMMING LANGUAGE p40
External and static variables are initialized to zero by default.
すっかり忘れてた。
ってことは、外部変数(普通使わんわな)や static 変数は 0 で初期化する必要はないんな。
また、配列を {'\0'} で初期化すると 0 で埋めてくれるのは実装依存か?

「プログラミング言語 JAVA 第 3 版」曰く、
---
6.4.3 配列の初期化
配列が生成されると、配列の各要素は、その型に応じたデフォルトの初期値に設定されます。
数値型はゼロ、char は '\u0000'、boolean は false、参照型は null です。
参照型の配列を宣言した場合には、その型の配列を宣言していることになります。
次のコードを見てください。
Attr[] attrs = new Attr[12];
for (int i = 0; i < attrs.length; i++)
attrs[i] = new Attr(names[i], values[i]);
配列を new で生成した時点で、attrs は、null に初期化された 12 個の変数の配列への参照を持っています。
Attr オプジェクトそのものは、ループが実行された時にだけ生成されています。
---
だそーな。C++ より自然だよねぇ。< int なんぞの場合の話。
どーせ大抵は初期化すんだし、初期化の必要がないときにしても、
初期化自体がパフォーマンスに多大な影響を及ぼすケースは考え難いし。
ついでに local field も初期化してくれりゃ良いんに。
大抵はまず 0 にすんだから。

typedef struct foo {} foo_t;
とする理由。
foo を利用するとなると
struct foo f;
としないといけないけど、foo_t があれば
foo_t f;
とできるから。

public, protected, private
プログラミング言語 C++、Effective C++ など、どの本を見ても定義は載っているが使い方がいまいち。
継承のときは、public を使えば普通問題ない。
メンバ変数は private に。
インターフェースとなるメンバ関数は public に。
で、他のメンバ関数は……。
他のメンバ関数が public ではまずいことは自明なので、private か protected なのだが。
private と protected は、継承されたときに、子から使えるかどうか。
現在継承などされておらず、近い将来にも継承に利用する予定のない場合は……。
ライブラリを作るときにはまた違う考えもあるかもしれないが、アプリケーションを作るときは private にしておき、必要に応じて protected に変更するのが良いと思う。
将来のためにごたごたするより、現在一番 simple な形にするように保てって誰かが言ってた気がするし。
以前、メンバ関数は基本的に protected にって記述を読んだ気がしていたのだが、手元の本はもちろん本屋まで行っていろいろ漁っても見つからず。どこで読んだのやら。
--- MFC ソース コードの表記規則 ---
C++ キーワードの public、protected、および private
MFC ヘッダー ファイルでは、各クラスの中でそれぞれのキーワードが何回も使われます。たとえば、パブリック メンバ変数とパブリック メンバ関数は、複数の public キーワードの下に分けて記述されることがあります。これは、MFC ではアクセスのタイプではなく、用途に基づいてメンバ変数と関数を分類しているからです。MFC では、private をできるだけ使わないように設計されています。処理系に密着した変数や関数であっても、通常は protected が使われ、public もよく使われます。クラス外部からインプリメントの詳細部分へのアクセスは避けることになっていますが、MFC では最終的な判断はプログラマに任されています。
---
これも、一つの方法ではあるな。アクセス制限を厳しくするのは皮を 1 枚被せるだけで良いけど、逆は元のコードを触れない限りどうしようもないし。

C において、- な単項演算子は、関数と共に利用できる。
つまり
int i = -foo();
なんて書き方ができる。
それが美しいかどうかはさておきだし、
それを利用する機会があるかというと、私が生きている間にはないような気もするのだが……。

プログラムのコメントにスマイリーを使用しない方が良い理由
main()
{
        char s[] = "I am the cleverest man in the world.\n";    // (^^)\
        printf("%s", s);
}
とかやったときに、何も印字されずに寂しい思いをするから。

コマンドプロンプト (Cmd.exe) の自動補完を有効にする方法
Use File and Directory Name Completion in Command Prompt
Windows NT/2000 のコマンドプロンプトは、ファイルやディレクトリ名を入力する際に自動補完機能を利用できます。ただし、この機能はデフォルトでは disable になってます。レジストリを変更することで、この機能を利用することができます。レジストリの
HKEY_CURRENT_USER/Software/Microsoft/Command Processor
にある
CompletionChar
の値を 9 にする
と、ファイルやディレクトリ名を途中まで入力し、Tab key を押す、もしくは C-i を押すと、ファイル名等が補完されます。ただし、コマンドの補完、検索等は相変わらずできません。また、どうしても Tab key 以外のキーで補完したいという奇特な方はこちらを御覧ください。(私は試してませんが)きっと幸せになれます。
それにしても、なぜゆえこのような便利な機能をわざわざ実装しながら、Default で off にしてしまうのだろうか? > M$
Tab でファイルやディレクトリの名前が補完できて困る人などいないだろうに。
# 将来 Tab を含むファイル名を許可したときでも、現状の Command Prompt が使えるように気を使ったのかな。;-P

Windows 95 で Ctrl と Caps Lock を入れ換える方法
How to reassign keys on your keyboard
Windows 95 Kernel Toys Set を入手する。
exe を実行する。
Foo.ini を右クリックし、インストールを選択。
コントロールパネルのキーボードを開き、remap tab を選択。
Caps Lock を Ctrl にするには、左で Caps Lock を選択し、右のリストで Ctrl を選んで Apply すれば良い。

MS-DOS プロンプトでコマンドの再呼び出しを有効にする方法。
MS-DOS プロンプトで
DOSKEY
を実行する。
MS-DOS プロンプトのショートカットのプロパティのプログラムタブのバッチファイルのところに DOSKEY と書いておくと便利。

MS-DOS プロンプトの文字色及び背景色の変更方法
- 特定の MS-DOS プロンプトでのみ変更するには:
MS-DOS プロンプト を起動し、次のコマンドを実行
prompt $e[07m$p$g
cls
- 任意の MS-DOS プロンプトで変更するには:
autoexec.bat に次の記述を追加
prompt $e[07m$p$g
これで、背景が灰色、文字色が黒になる。
07 のところを 00-08, 30-37, 40-47 にすると、色が変化する。
番号と色の対応は、Google で "MS-DOS プロンプト 色 変更" といったキーワードで検索するといろいろみつかる。どのサイトも微妙に情報が違うのが面白い。

MS-DOS の常識講座、MS-DOS 入門、MS-DOS の基礎知識
C:\>FOO /?
Usage FOO drive:
なとき。
C:\>FOO X:
と実行する。
C:\>FOO X
とか
C:\>FOO drive:X
なんてのは不許可。
# これで一晩悩んださ。

アイコンの整列
Windows 2000 において。いつからか、ファイルフォルダにおいてアイコンを名前順に整列すると、辞書順の逆に並ぶようになっていた。つまり、z が最初にきて、数字が最後になった。そうなった直後は戸惑ったものの、慣れると別に気にならないし、ちょうどそのときは忙しかったしで放っていた。Tweak UI をインストールしたら、直った。

ホームページ・ビルダーの HTML ソース表示の画面において、メモ帳で言うところの「右端で折り返す」を実現するには右クリック -> ソース編集オプション -> ソースの自動改行をチェックすれば良い。たったこれだけのことなのに解るまでしばらくかかった。ヘルプで「折り返す」で検索してもなんも見つからんし。
# 書くときはたいてい HTML ソース表示しか使わず、確認は IE でやってるんだから、素直にメモ帳使えば良いんだがな。< おれ

SKKIME
SKKIME の使用に成功。on Windows 2000 Advanced Server
Procedures:
1. SKKIME を下記サイトからダウンロード
http://www.tatari-sakamoto.jp/~tatari/skkime.jis.html
今回は SNAPSHOT 2003/02/13 を使用
http://member.nifty.ne.jp/Tatari_SAKAMOTO/arc/skkime/skkime1.0-win2k-bin-snap20030213.tar.gz
2. skkime1.0-win2k-bin-snap20030213.tar.gz を解凍
3. SKKI1_0U.INF を右クリックし、インストールを選択
4. コントロールパネルのキーボードで SKKIME を追加、既定値に設定
5. SKK 本家の辞書を取得
今回は SKK-JISYO.L.unannotated を使用
http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.L.unannotated.zip
6. 辞書を解凍し、X:\Documents and Settings\Administrator\Application Data\skk\skki1_0 に移動
7. 再度、コントロールパネルのキーボードを開き、SKKIME を選択し、IME の設定ボタンを押す
8. 辞書設定タブで、解凍した辞書を追加 (その際、"ソートされてる" にチェック)
いぢょ。
で、ちょっと使ってみた感じでは、なかなか良さげ。
ま、SKK95 にも不満はないからどっちでも良いっちゃ良いんだが。

VC++ でダイアログを追加する方法
1. リソースでダイアログ作成。
2. クラスを作成し、1. で作ったダイアログに対応づける。
1 と 2 の順が逆だと寂しい思いをする。
# でも、何度でも失敗するんだろな。> わたくし

AfxMessageBox と、CWndMessageBox と ::MessageBox。
CWndMessageBox の項には AfxMessageBox を利用せいと書いてる。::MessageBox は AfxMessageBox よりも細かい指定、もとい window text の書き換えができる。つまり、AfxMessageBox を使っておいて、window text を書き換えたくなったら ::MessageBox に浮気すれば良いと。また MFC を用いずに SDK で頑張ってるときは ::MessageBox しか選択肢はない。

VC++ におけるプロファイル
1. VC++ のプロジェクトメニューの設定を開き、リンクタブを選択。
2. E を押して、プロジェクトオプションに /profile を追加。
# 日本語版の VC++ では、check box は利用できない。
3. ビルドメニューのプロファイルを選択。
=> アウトプットウィンドウに次のエラーメッセージが表示される。
PREP : fatal error PRF1011: e:\projects\xkeymacs\debug\xkeymacs.pbo を開けません
これは DDK がインストールされてたりすると、そっちの profile.exe を見に行ってしまうことが原因だと。
試しに profile.exe を探してみたら、山程でてきた。
きっと C:\bin\Microsoft SDK\Bin\WinNT が主犯だと目星を付け、こいつを rename。
大当たり。ちゃんとプロファイルのデータが取れるようになる。
以前楽勝だったのは、英語版でチェックボックスの問題がなかったことと、SDK, DDK を入れてなかったからですな。

VSS でファイルを比較するとき、Proportional Font で表示されるためタブやらなんやらがずれずれで醜くてしょうがなかったのだが、以下の手順で設定できることを 3 年越しで発見。
- Tool メニューのオプションを選択
-> "Visual SourceSafe オプション" ダイアログが開く
- "相違点" タブを選択
- "フォント" グループの "変更" ボタンを押す
-> "フォント" ダイアログが開く
- フォント名 "MS ゴシック" を選択
- "フォント" ダイアログの OK ボタンを押す
- "Visual SourceSafe オプション" ダイアログの OK ボタンを押す
もっと早く気付いていれば、もっと快適な生活が送れたのに……。
だいたいなぜに Fixed Font が Default でないのだか。
m の幅に i が 3 文字表示できたからって嬉しがる人はいないと思うのだが……。
コードに AA で絵を描く人向けなんかにゃぁ。

配列
---
サイズが 0 の配列は、Microsoft 固有の拡張仕様 (/Ze オプション) を指定したうえで、その配列が構造体または共用体の最後のフィールドであるときだけ有効です。
---
構造体内の可変長配列
---
C/C++ の構造体またはクラスの最終メンバを可変長配列にできる Microsoft の拡張機能です。構造体の最終メンバを可変長配列にすると、可変長文字列または他の配列を続けることができます。したがって、実行時にポインタを逆参照する手間が省けます。
---
# 「10%ルール」のため詳細はリンク先参照。

Java tips。
Class name は大文字で始める。
メソッドは小文字で始める。
配列は int[] foo = new int[0x100]; といった感じで定義。
更新可能なメンバーオブジェクトを return するときは clone を返す。
paintComponent は絶対自分で呼び出してはいけない。
(強制的に再描画したいときは repaint を呼べば良い。)
マウスの右ボタンのチェックには BUTTON3_MASK を利用する。<- VC++ は 2 だったよな、たしか。

JBuilder では、なぜか XKeymacs がまともに動かない。
で、XKeymacs に頼らずに、快適になる方法をば。
メニューのツール -> IDE オプション -> ブラウザタブ -> キーマップ -> Emacs を選択。
これでインクリメンタルサーチもできるように!!ちょっと感激♪
さらに C-h が Back space になるように
カスタマイズボタンを押し、delete-previous に C-h を割り当てる。う〜ん、完璧。
# 喜んでないで XKeymacs で対応できるようにしろって説も。
# きっと Ctrl の監視あたりが邪魔してんだろうな。きっと。

Windows 95 上で XKeymacs を利用すると、OS の挙動が重くなることがあります。X:\WINDOWS\SYSTEM にあるオリジナルの mfc42.dll, msvcrt.dll が古いのが原因です。新しいものをここなどから入手し入れ換えると直ります。xkeymacs115.zip (46,336 bytes), xkeymacssrc115.zip (168,729 bytes) は、オリジナルの mfc42.dll, msvcrt.dll と共存できます。
In some environment, XKeymacs make your Windows95 dull. The cause of this problem is that original mfc42.dll and msvcrt.dll of Windows 95 are too old. You can avoid this problem to swap original mfc42.dll and msvcrt.dll for new one. If you can not avoid by this way, you can use old XKeymacs: xkeymacs115.zip (46,336 bytes), xkeymacssrc115.zip (168,729 bytes). This work well on every Windows 95.

[WD2001] 文書保存時に「ディスクがいっぱいです。」エラーが表示される
Q. データを保存しようとすると以下のメッセージが表示されます。どうしたら良いですか?
「ディスクがいっぱいです。空き容量を増やすか、文書を他のドライブに保存してください。」
A. 文書を閉じるまでの間に保存した回数を数え、20 回程度保存したところで一度文書を閉じてください。
始めは冗談かと思った。
こまめに保存しないと、すぐにハングするくせに、こまめに保存したら保存すらできなくなるとは。

Windows 2000 における EPSON の PM-600C の利用方法
私が所有してる唯一のプリンタ、もとい、EPSON の PM-600C というインクジェット式のプリンタには Windows 2000 用のドライバは用意されてない。が、PM-670C には Windows 2000 用のドライバがここにある。そこで、「どーせ型番が 70 しか違わないんだから、使えないこともないのではないか。」とエンジニアらしくないことを考えて、Windows 2000 Professional にこのドライバをインストールして PM-600C を繋げ、Excel のデータを印刷してみたところ、ばっちし使えることが判明。もちろん無保証ですが、そんなこともあったということで。

How to sleep in batch file
先日、DOS のバッチファイルを利用する際に、コマンド間で時間を空ける必要があった。で、sleep みたいな名前の函数を利用すれば良いんだろうなぁと漠然と考えて Web を探してみたものの、そんなものはどこにもみあたらない。そこで、「この私が探しだせないということは、世の中に存在しないに違いない」と前向きに(?!)考えた私は、代替案を発案。
1. 大きいファイル a を用意。(実際にはたまたま手元にあった Windows 2000 SP2 (約 100 MB) を利用した)
2. HDD に a のファイル 2 個分以上の空きがあることを確認。
3. バッチファイルの眠らせたいところに
@copy /y a b > nul
と記述。一行で 1 秒程度なので、必要に応じて同じ文を何行か書く。所要時間は当然、CPU の性能やメモリの量、それにディスクのアクセス速度に依存する。
もうちょっとは_まし_な方法がありそうな気もするのだが……。募集中です♪

SKK95a のトラブルと解決方法
ある日、変換しようとすると下記のエラーが……。(ダイアログの絵のつもり)
+----------------------------------------------------
|skk95dic.exe - アプリケーション エラー
+----------------------------------------------------
|(X) "0x0040778c" の命令が "0x00000000" のメモリを参照しました。メモリが "read" になることはできませんでした。
|
| プログラムを終了するには [OK] をクリックしてください
| プログラムをデバッグするには [キャンセル] をクリックしてください
| [ OK ] [ キャンセル ]
+------------------------------------------------------
上書きインストールを決行したら直った。よしよし。
正確には
タスクバーの SKK icon を右クリックしプロパティを選択。
地域のオプションダイアログの入力ロケールタブのインストールされている入力ロケールで MS-IME2000 を選択し既定値に設定ボタンを押す。
SKK95 を選択し、削除ボタンを押す。
地域のオプションダイアログの OK ボタンを押す。
(なぜ "OK" が "おっけー" ぢゃなくて、"キャンセル" が "Cancel" ぢゃないのかは不明。
M$KK は「平民は OK は読めても Cancel は読めないだろう」とでも思ってるのだろうか?
どーせローカライズするなら、せめて "取り止め" くらいにすりゃ良いんに。閑話休題)
Windows 2000 を再起動。
skk95.REG をメモ帳で開いて、"UseEmacsLikeKey"=dword:00000001 を全て "UseEmacsLikeKey"=dword:00000000 に変更。他も適宜。
SKKSETUP.exe をダブルクリックし、ひたすら Enter を連打。
タスクバーの SKK icon を右クリックしプロパティを選択。
SKK を選択し既定値に設定ボタンを押す。
IME の設定ボタンを押し、適当に設定する。
もし skk95.REG をデフォルトのまま使用したときは Start menu の run... から regedit を起動し、UseEmacsLikeKey を全て検索し値を 0 にしWindows 2000 を再起動する。(そうしないと XKeymacs とコンフリクトする。)
--- 用語集 ---
M$KK: マイクロソフト株式会社の略。Microsoft Corporation と区別するのに便利。

Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000 について。
InstMsiW.exe をダウンロードし、Windows 2000 日本語版上でダブルクリックすると

+--------------------------------------------------+
|エラー                                   [X]|
+--------------------------------------------------+
|/!\    指定されたサービスは既に開始されています。   |
|~~~            [   OK   ]                       |
+--------------------------------------------------+
と言われる。サービスぢゃないってばさ。
で、どーせアーカイブに違いないと eo に放り込んでみたら、
ちゃんと解凍される。
ふみゅ。
で、setup.exe もないんで msi.inf を右クリックし、インストールを選択。
# って、んなことするまえに、ドキュメント読めよ。> 俺
つーかこれがダウト。
instmsi.msi を実行すべきだったんな。
で、変なことするから instmsi.msi はすぐ終了しちゃうし、
アプリケーションの追加と削除には見えてるのに
アンインストールできないし。
しゃーないから、レジストリで Microsoft Windows Installer で検索し、
引っかかったものをねこそぎ削除。
今回だけは OS を壊すかと思ったよ。< 思ったらやるなって。
とりあえず、OS は無事起動。< 流石、日頃の行い(違
と言いつつ、xkeymacs???.msi のようなインストーラを実行しようとすると
+----------------------------------------------------------------+
|Windows インストーラ                                         [X]|
+----------------------------------------------------------------+
| /!\   Windows インストーラサービスにアクセスできませんでし     |
| ~~~   た。セーフモードで Windows を実行している場合、または    |
|       Windows インストーラが正しくインストールされていない場合 |
|       に発生する可能性があります。サポート担当者に問い合わせ   |
|       てください。                                             |
|                     [       OK       ]                         |
+----------------------------------------------------------------+
と怒られるようになってしまった。当然インストールは不能。 サポート担当者って誰ぞ?

ウィルスにかかったときは。
1. NIC からネットワークケーブルを引き抜く。
2. シリアルポートからモデムのケーブルを引き抜く。
3. DOS 窓を立ち上げ、
> format c:
を実行する。
マイコンピュータを開いたときにドライブが C 以外にもあるようだったら、それ以外のドライブに対しても format を実行する。
いぢょ。

Joke Soft
IE とソックリな外観を持つブラウザ。
内部でタダ IE を起動するのみ。
# IE なスキンで IE なエンジンの Mozilla なんて話題を見てつい……。

101 Keyboard における \| な Key の押し方。
\| な Key は 101 Keyboard では Enter Key の上にある。
はっきり言って、指が届かない。
いくらアメリカ人の手がでかくても、あそこまでは届かないと思う。
届くようなら、そもそも C-m や C-h な出番とかないし。
って、Emacs の Default では C-h は Help か。
ってことは、届くのかなぁ。
\ は U*IX 使いには escape sequence なので、あんまし縁がない気もするのだが、
| はパイプだから欠くことのできないというか、良く使うキーだと思うけど……。
……って、落ちない。

Shift + Space 無効化計画。
最近の Linux では、インストールしたままの状態で利用してると、 Shift + Space を押しただけで、かな漢(canna とか wnn とか、いわゆるインプットメソッド)が起動してしまう。必要な人には必要な機能なのだろうが、私は SKK しか使わないから C-x C-j さえ使えれば十分だし、ましてや、ちょっとプログラムを書いてるときに ") {" と打とうとしただけでかな漢が起動した日には迷惑千万なので……。まぁ、前置きはこのくらいにして。
kinput2 が悪いみたいなので
# ps -e | grep k
で kinput2 の pid を調べ、(あぁ、タコ具合がバレる (^^; )
# kill ???
として、kinput2 を殺してみたら、起動してた端末やら emacs やらがみんな終了してしまった。(汗 やっぱ、妙なことする前は、どーなっても良い状況を作ってからせにゃならんね。で、とりあえず、そうすれば Shift + Space を押しても Space 扱いされるようになった。これを起動時に常に実行するようにすれば、ひとまず目的は達成できそうなのだが、あまりに格好悪いので、もう少しスマートな方法を探す。
で、
/usr/lib/X11/app-defaults/Kinput2

*ConversionStartKeys: Shift<Key>space
をコメントにしちゃう、つまり、冒頭に ! を付けるとばっちし!
# なぜに、正味 3 行の内容がこんなに冗長になるのだろうか。> 私の文書

Linux で (つーか X で) CapsLock を Ctrl にしてしまう方法。
--- ~/.xmodmap ---
remove Control = Control_L
keysym Caps_Lock = Control_L
add Control = Control_L
---
# xmodmap .xmodmap
.bashrc に
xmodmap ./xmodmap
と書き加えとけば、X 起動時に自動的に反映される。
これを書いておくのに .bashrc よりも適切なファイルがありそうな気はしてるのだが、上記の方法でも十分なので追ってない。乞う情報。

おちゃらか .emacs
--- ~/.emacs ---
(global-set-key "\C-h" 'backward-delete-char)
(setq next-line-add-newlines nil)
(display-time)
(setq-default tab-width 4 indent-tabs-mode nil)
---

おちゃらかサンバ
ユーザ: foo
コンピュータ名: bar
のとき、
# mount -t smbfs -o username=foo //bar/tmp /mnt/bar
とかすると bar で共有可能になってる tmp フォルダを /mnt/bar にマウントできる。

emacs における置換
M-x replace-string RET string RET newstring RET
stringをすべてnewstringで置換します.
cf. GNU Emacs Manual - Table of Contents

ルータの設定方法
最近 ADSL に乗り換え、MegaBit Gear TE4000 (正確には MegaBit Gear TE4111C ) というルータを使い始めました。このルータは基本的に全てのポートが開いてるみたいなので、下記の様に設定してみました。

---
IPフィルタ設定
No. 優先度 インタフェース  送信元IPアドレス 送信先アドレス プロトコル 送信元ポート 送信先ポート アクション
 1  1      接続先1から受信 0.0.0.0/0        Hi-HO(PPP取得) TCP        *            www          非通過 
 2  2      接続先1から受信 0.0.0.0/0        Hi-HO(PPP取得) TCP        *            20-21        非通過
 3  3      接続先1から受信 192.168.0.0/16   0.0.0.0/0      *          *            *            非通過
 4  4      接続先1へ送信   0.0.0.0/0        192.168.0.0/16 *          *            *            非通過
 5  5      接続先1から受信 0.0.0.0/0        0.0.0.0/0      *          *            137-139      非通過
 6  6      接続先1から受信 0.0.0.0/0        0.0.0.0/0      *          137-139      *            非通過
 7  7      接続先1から受信 0.0.0.0/0        0.0.0.0/0      *          *            445          非通過
 8  8      接続先1から受信 0.0.0.0/0        0.0.0.0/0      *          445          *            非通過
 9  9      LANから受信     0.0.0.0/0        0.0.0.0/0      *          *            137-139      非通過
10 10      LANから受信     0.0.0.0/0        0.0.0.0/0      *          137-139      *            非通過
11 11      LANから受信     0.0.0.0/0        0.0.0.0/0      *          *            445          非通過
12 12      LANから受信     0.0.0.0/0        0.0.0.0/0      *          445          *            非通過
13 13      接続先1から受信 x.x.x.x/x        Hi-HO(PPP取得) TCP-SYN    ftpdata      *            通過
(snip)
32 32      接続先1から受信 0.0.0.0/0        0.0.0.0/0      TCP-SYN    *            *            非通過
---
- 1. 2. はマニュアルに上述の様にするようにという記述がありました。逆にマニュアルにはそれしか書いてませんでした。あとは自分で勉強しろということみたいです。なかなかユーザ思いです。で、32 があれば 1. 2. はいらない気もしたのですが、消すこともないのでとっておいてます。
- 3. 4. は WAN からアドレスを偽装してアタックされたときのための対策です。
- 5. 6. 9. 10. で NetBIOS を利用してファイル共有を WAN から利用されるのを禁止してます。
- 7. 8. 11. 12. でダイレクト・ホスティング SMB サービスを利用してファイル共有等を WAN から利用されるのを禁止してます。
- 13. で FTP クライアントが動けるようにしてます。送信元 IP アドレスは私が常用してる ftp 先のアドレスを決め打ちしてます(伏せる必要があるのかどうかは理解してないのですが、伏せたために私が被害を被ることがないことだけは理解してます :-) )。
- 32. で WAN から TCP でつつかれるのを防いでます。
せいぜい、ブラウザとメーラと FTP クライアントくらいしか使ってないのですが、上述の設定で副作用はないようです。ひとまずは、これで良いのではないかと考えているのですが、改善案等ご存知の方は御教示して頂ければ幸いです。

万国著作権条約パリ改正条約
世界中に著作件を主張するには、
(C) 発行の年 著作権者の名
と書いておくと良いみたいです。
# メールアドレスが著作権者の名と認められるかは未確認。


(C) 2001-2005 oishi@cam.hi-ho.ne.jp