compadd ~/.zsh(rc|env) || _files じゃないんだろうか。
compctl はもはや覚えていないからよくはわからんが。
これはさすがに現実逃避が過ぎたかも知れない... wwwp
... 画面が blackout しない xlock が欲しいな。 どこかにあった気がするのだが。
Ruby/GTK を使ってみる。 gdk_input_add が(まだ?)サポートされていないことに気がつく。
とすると、外部からの入力を待つには non-blocking I/O で polling しないといけない?
convert が吐く xpm には alpha channel がついていることに気がつく。
モニタ(同期のやつ)を理解してしまう。 (いままで理解してなかったんか...)
PostScript っつーか、GhostScript なら (%pipe%...) (r) fileとかだったと思うが。 むろん SAFER を指定しない必要がある。
げふ。<200108081436.AA00782@spulse.is.s.u-tokyo.ac.jp>
同感ではあるが。
Ruby で ENV が Object であることに気がつく。
LysCVS is a system that provides access to CVS in an easily administered way for both local and external users.
CVSsuck が cvs protocol を話すようにするのはまだ実現されてないです。 そのうちそうする予定ではありますが、 CVSsuck 単体をそうするのではなく、 Ruby/CVS が cvs protocol を話すようにして、 CVSsuck は Ruby/CVS を利用するように書き直す予定なので、 ちょっと先の話になりますね。
それはそれとして、CVSsuck や Ruby/CVS が(cvs コマンド経由で)生成する cvs protocol の request はいくつか特異な点もあって、 proxy を作るときには参考になるかも知れないノウハウも入っています。
repository の directory 名とはまったく関係ない directory 名を working directory の名前として使うとか、 sub directory をいかにして得るか、とか。
なお、どっちかっていうと CVSsuck よりも Ruby/CVS のほうが分かりやすいんじゃないかと思う。 後から書いたものだし、アプリケーションじゃなくてライブラリだし。
pserver と会話できないのは... 最初に思いつくのは改行の違いかな。 cvs protocol は CRLF じゃなくて LF なんで、telnet とかは使えない。
CVSup のプロトコルを眺める...
わお。
E <file> <command> [<args>] Append <command> to the list of shell commands to be executed after the next file update, if the update is successful.
セキュリティホール... ではないな。
クライアントのオプションや supfile で明示的に enable しないかぎり動かないようだ。 (マニュアルにも enable するのは security risk をともなうとちゃんと書いてある。)
ライセンスを調べる。
「Rubyのライセンスに従います。:-)」
「マジカルとこちゃんプロジェクトは、BSD ライセンスの思想を受け継ぎ、注記無き場合には基本的に引用可能です」
「当フォーラムに存在する文章、図版はすべてオープンコンテンツとしその利用に関してはフリーとします」
「Lina With Linux別館にあるcharlingの描いたイラストに関しては転載・手を加えてみるなどはご自由にどうぞ」
「誰でも好きに使っていいじゃば〜」
「商用以外ならご自由に活用下されて可」
このへんなら wwwp の screenshot を作るのに使っても問題なかろう。たぶん。 でも、複数種のライセンスからなる画像を使った場合、どんなライセンスになるのだろう?
psfrag を使うと dvipdfm は使えないことに気がつく。まぁ、そりゃそうだよな...
Unix From だけじゃなくて Return-Path: も quote するようなシステムがあるのか?
>From info-cvs-admin@gnu.org Tue Feb 6 00:17:07 2001 >Return-Path: <info-cvs-admin@gnu.org>
Catamorphism という言葉を知る。
diff のアルゴリズムに shortest path のほかに contours という考え方があることを知る。
shortest path を quick sort に例えるなら、contours は heap sort みたいなもんだな。 最悪でも実用的なオーダにおさまるし、 平均的にもオーダとしては同じだが、 係数が大きいので最高速度では及ばない。
あとは想定される用途でどちらが速いか、か。
うぅむ。ラブリー百科事典に奇面組... そーゆー方針ってことかねぇ。
投機的実行なるものを試してみる。
当然だが遅い。 最悪(速い方の)2倍で済むというのも事実ではあるが。
投機的実行よりはいいとこどりしたアルゴリズムを考えるのが筋ではあるのだろう。
Tech B-ing を買ってみる。 へー、こんなに安いものなんだ。 ぜんぶ広告みたいなもんだからなのかな。
rsync algorithm を調べる。 ラビン・カープを思い出す。
が、なんで MD4 なのだろう?
つまり、変更内容が追加だと判明している場合にはブロックサイズをファイルサイズに等しくすれば、 単純に追加分だけを転送する、はずだ。
vim で動く Boomborg-Keisan が欲しい...
rsync protocol は undocumented なのか?
tigris の cvs は pcheck.pl なるものを呼び出すらしい。
うぅむ。CVSsuck が動かないではないか。
% cvs -f update -r00 -d -p a cvs update: warning: unrecognized response `DBD::mysql::st execute failed: You have an error in your SQL syntax near ')' from cvs server cvs update: warning: unrecognized response ` and HELM_ACTION.NAME = "VersionControl - Update"' from cvs server cvs update: warning: unrecognized response ` and HELM_ROLE.ROLE_' at line 9 at /var/svscan/tigris-cvs-pserver/pcheck.pl line 250.' from cvs server cvs update: warning: unrecognized response `DBD::mysql::st fetchrow_arrayref failed: fetch() without execute() at /var/svscan/tigris-cvs-pserver/pcheck.pl line 252.' from cvs server User anonymous doesnt have <Update> access to project a
working directory の名前まで制限するか... とゆー以前にバグ臭いが。
次版では working directory も普通の名前にするか。
vc.el がサポートしてるのは SCCS, RCS, CVS であることを確認する。
ふと思ったのだが、CVS/Entries を確認すればいろいろわかるというのは cvs-info においても真だな...
3Mbytes ほど追加のあったファイルを rsync する... 時間がかかりすぎる。 10分たっても終わらない。サーバ側の負荷が高いようだ。
ブロックサイズをデフォルトに戻すとすぐ終わる。
うぅむ。rolling hash なんだからブロックサイズと処理量はあまり関係ないと思うのだが。 technical report を読み直すべきか。
それはそれとして... DoS 可能?
「モノさえ見れば(=仕様さえわかれば)どんなものでも作れちゃう」などといえてしまうのは幸せなことだと思う。
diff を実装した直後の感傷かも知れない。
最小の自然数は? 0 or 1
虚数単位は? i or j
大かっこは? {} or []
An O(NP) Sequence Comparison Algorithm の著者が agrep (や Glimpse)の作者であったことに気がつく。
OpenSSH の sshd が環境変数をクリアすることに気がつく。
wget で出力を -Ofilename と指定したときに、 失敗しても空のファイルを作ることに気がつく。
Ant のドキュメントを眺める。
うぅむ。本体で timestamp を扱わないとは大胆な。
それはそれとして、super class を修正しても sub class は再コンパイルされないのだな... いや、depend というのがあるのか。
MetaRecentChanges: wiki のアンテナ
CVSROOT/taginfo から起動するプログラムは、個々のディレクトリ毎に呼び出されてしまう... うまいことまとめる方法はないものだろうか?
さらに、branch tag か non-branch tag かもわからない...
うぅむ。fork して孫を作り、子供はすぐに死なせ、親が死ぬのを polling し、 孫同士で同期し、最後の孫が、tag の種類をリポジトリから調べて mail を出す、とか?
ちょっとばかり、ちゃれんじんぐ、ですな。
taginfo 用のスクリプトを見たことがないのもうなずける気がする。
loginfo でも同じようなやりかたにすれば、commitinfo は設定不要なのかも知れない。
[latest]