Last modified: Mon Dec 25 2000

ソフトウェアをいじる話

これより古い/新しい「ソフトウェアをいじる話」は 「らんらんのLAN」の目次から参照できます。

最新の「ソフトウェアをいじる話」は
http://www.kmc.gr.jp/~ranran/memo/software.html
で参照できます。リンクされる方は目的に応じてURLを使い分けてください。


2000/12/25

変愚蛮怒にみる X プログラミングのツボ

変愚の XIM 化で得たいくつかの教訓をここに記す: どっかで新しめ(R6 以降ベース)で日本語で書いてあって何冊も分冊の「ない」 Xlib プログラミングの良い入門書を探して、真面目に勉強しようか... (え?軟弱?)

変愚蛮怒にみる locale の怪


2000/12/1

Netscape6 正式版

(注: 例によって Windows2000 上でのハナシなので、 他のOSだとまた事情が違うかも)

正式版が出たのでアップデートしてしばらく使ってみたのだが.... 使えんまくり。はっきりいって PR の頃のほうが100倍(推定)マシだった。

失望したので Mozilla の nightly build をとってきて試してみると、 何かこっちでも同じような症状がでる。
.... 今まで Netscape6 って 「Open Source の Mozilla をベースに Netscape(AOL) が独自改良を加えたブラウザ」 だと思っていたのだが、 実は単に Mozilla の snapshot の外見だけちょっと細工しただけの代物で 「独自改良」なんてロクにしてないんじゃぁ... これじゃほとんど詐欺だよ。世間で非難囂囂なのも当然かも。

2000/11/18

ふと思いたったので、自分用の CVS のリポジトリを作ってみることにした。 今自分の CVS リポジトリを作るのに適当なディスクが部室にはない (Disk Full ...)。 近いうちにファイルサーバがリプレースされればそこを使えるんだけど、 今はまぁ練習用ということで適当に空いてる(けど信頼性イマイチな) HDD に作ってみる。

CVSメモ(1)

まず概念と用語
リポジトリ [repository]
CVS で管理されるファイル群の最も大きな単位。 cvs -d とか環境変数CVSROOT で指定されたディレクトリと根とするツリーからなる。
モジュール [modules]
CVS で管理されるファイル群の、リポジトリより1つ小さい単位。 リポジトリは複数のモジュールから構成される。 通常リポジトリ(の根になるディレクトリ) 直下にあるディレクトリ(とその下全体)を1つのモジュールとして扱う。 が、別途モジュールを構成するファイルを定義することも可能。
管理用ファイル [administrative files]
リポジトリ(の根)直下の CVSROOT というディレクトリに入ってる管理用のファイル群。 この CVSROOT というのもモジュールの一つになるので、 「管理用モジュール」といったほうがよいかも。
作業用ディレクトリ [working directory]
作業する人がリポジトリからモジュールのコピーを取り出しているディレクトリ。 作業している人の数(あるいはそれ以上)だけ存在する。
リポジトリを管理するためのコマンド(cvs のサブコマンド)
init
リポジトリを新規作成する。 具体的にはリポジトリとして指示されたディレクトリの下に CVSROOT (管理用ファイル)が作成される。
import
他所(リポジトリの外)にあるツリーをモジュールに取り込む。 普通は新規にモジュールを作成する時に一回だけ用いる。
モジュールを管理するためのコマンド
import
他所で独立に管理されているツリーからモジュールを作る場合、 オリジナル側の変更を取り込むためにも import が使われる。
開発する人が使うためのコマンド
(基本的に作業ディレクトリを用意して実行するコマンド)
checkout
指定したリポジトリから指定したモジュールの(部分)コピーを取り出す。 普通は新規に作業ディレクトリを作成するときに一回だけ用いる。
update
checkout 済の作業ディレクトリに対して使い、 (最後にupdate/checkoutしてからの)リポジトリ側の更新を取り込む。
commit
作業ディレクトリの変更内容をリポジトリに反映させる。
add
作業ディレクトリに新たに作成したディレクトリやファイルをリポジトリ側に反映させる、ことを指示する
実際にリポジトリ側にファイルやディレクトリが作成されるのはこの後で commit した時。
remove
作業ディレクトリから削除したディレクトリやファイルをリポジトリ側に反映させる、ことを指示する
実際にリポジトリ側からファイルやディレクトリが削除されるのはこの後で commit した時。
log
指定したファイルの更新履歴を見る
status
指定したファイルの現在の状況 (作業ディレクトリ側の最後に update した時のリビジョン、 現在のリポジトリ側の最新のリビジョンなど)を表示する。
diff
リポジトリ側(の任意のリビジョンの時点のもの)のファイルと、 作業ディレクトリ側のファイルで差分をとる
release
作業ディレクトリを消去する。 正確には消去しても問題ないか(未commitな変更が残ってないか、など) をチェックするだけ。問答無用で rm -rf してもシステム的には問題ない。
バージョン管理に関する用語
リビジョン [revision]
CVSで管理される個々のファイルにつけられているバージョン番号。 他のファイルのリビジョンとは独立につけられる。 普通は(特に設定しなければ) x.y のような2つの数であらわされ、 書き換えられるたびに y が増えていく。
タグ [tag]
ファイルの特定のリビジョンに対して付けられた symbolic な名前。 複数のファイルに同じ名前のタグをつけてもよい。 この場合、同じ名前のタグでもファイルによって対応するリビジョンはバラバラ。
普通、 リリースするとかにモジュールのすべてのファイルに (リリース名や日付をもとにした)同じ名前の tag をつける。 これによって後で「この時点でのツリー」を簡単に取り出せる。
枝(ブランチ) [branch]
同一モジュールの同一ファイルに対して複数のリビジョン管理(=内容変更) の系列を用意したときの、それぞれの系のこと。 一番大元になる系(幹 [trunk])や、 他の枝の特定のリビジョンから分岐する形で作られる。
枝のリビジョン番号は、"[分岐前の元のリビジョン番号].[枝番号].y" という形になる。
一部の開発者が自分(達) だけの実験用に本流に反映させずにファイルを変更したいとき、 安定版と開発版の2つを同時に管理したいとき、などに使われるようだ。
例えば FreeBSD のソースの場合を見ると、 幹は -current になっていて、 -current から枝を分岐させて -stable 用としているようだ。 よって、FreeBSD のソースファイルの revision 表記を見ると、 -current のは 1.x のような数字2つの revision が、 -stable のは 1.x.2.y のような数字4つの revision が書かれている。

2000/11/6

CD-ROM なしで Windows のインストール(PC-98の場合)


2000/10/29

Solaris8 vs. FreeBSD4


2000/10/27

knr2ansi(?) 追補

CVSサーバを立てよう(2)


2000/10/19

Netscpe6 PR3

最近思いだしたようにWWWでょゎぃ画像の収集をはじめたので、 適当な GUI な WWW ブラウザを物色中。 ちなみに以下、基本的には OS は Win2k での話。
Netscape Communicator 4.75
文字がよく化ける (特にウィンドウを別に開ける時。 言語設定をいじっても化けたままのことも多い)
セキュリティホール対策も遅れぎみだし... ま、Mozilla ベースの NC6 が本命らしいのでこっちのメンテナンスは手抜きなんだろう。
スタイルシートの対応はボロボロなので切って使うのが吉。 普段は JavaScript も切るのだが、 見るページの中身の傾向を考えると切ってるとロクなことにならないので、 仕方なく有効にして使っている。
Netscape Communicator 6 PR3
「PRだけど4系よりははるかにマシ」 との後輩Y君の進言により試してみる。 ... リリースまでには何とかなってるといいなぁ。
Mozilla seamonkey (Milestone 17)/Nightly build
Win2k では動かなかったのでパス (今の Nightly build と M18 でどうなったかは知らん)
Unix 版はちょっと使ってみたけど、なんか動作が「もたっ」 としてるので、あんまし使いたくないかも。 (← Dual PentiumIII 700/FreeBSD 4.1-STABLE でこれじゃぁねぇ...)
IE 5.5
なんだかんだいっても、表示面ではいちばんまっとう。 ただなぁ、 セキュリティとか表示回りのオプションがどこまでユーザ固有になってるのかがよくわかんないんだよなぁ。 KMC で多人数で使う環境だとこれがいっちゃん重要だったりするんだけど...
今度真面目に調査の必要あり、かな。
で、結局今は NC6PR3 を使ってる。 今度 Mozilla M18 も試してみるか。

2000/10/14

cron の困った仕様


2000/9/29

CVSサーバを立てよう


2000/8/26


2000/8/21

zsh gettext化計画(2)


2000/8/19

zsh gettext化計画 :-)


2000/7/10

Semi-gnus(T-gnus)


2000/5/15

apache の suexec


目次へ