Debian で core を吐かせる正しい方法がわからない。
川端さんの顔を見た。
Unicode の問題を教わる。
包摂基準の異なる文字セットを統合してしまった問題よりも、 包摂基準が(規格の改定により)変化する文字セットを統合してしまったことのほうがさらに本質的な問題なようだ。
ギリシャはグレゴリオ暦ではないという話の信頼性が少し上昇... 下降。
google で leap year greek 900 として探すといろいろ見つかる。
ギリシア正教会(The Greek Orthodox church)の暦であって、国家として採用している暦ではないらしい。
だが、これをロシアが採用しているという話もある。 なお、The SPAWAR group in the US Navy なるものが更に正確な暦を提案しているらしい。
SPAWAR ってのは Space-enabled Warfare Systems Command か?
leap year russia 900
今日の Ruby script: (http://www.examsky.com/jglossl.html)
class Fixnum def is_leap_year_via_julian? return self % 4 == 0 end def is_leap_via_pope_gregory? return (self+1) % 4 == 0 if self < 0 return self % 4 == 0 if self < 1582 return false if self % 4 != 0 return true if self % 100 != 0 return false if self % 400 != 0 return true end def is_leap_via_herschel? return (self+1) % 4 == 0 if self < 0 return self % 4 == 0 if self < 1582 return false if self % 4 != 0 return true if self % 100 != 0 return false if self % 400 != 0 return true if self % 4000 != 0 return false end def is_leap_via_greek? return (self+1) % 4 == 0 if self < 0 return self % 4 == 0 if self < 1582 return false if self % 4 != 0 return true if self % 100 != 0 remdr = self % 900 return remdr == 200 || remdr == 600 end def is_leap_via_spawar? return (self+1) % 4 == 0 if self < 0 return self % 4 == 0 if self < 1582 return false if self % 4 != 0 return true if self % 100 != 0 return false if self % 400 != 0 return true if self % 3200 != 0 return false end end
はじめて Mixin らしく Mixin を使った気がする。
とりあえず、 Enumerable のマニュアルを眺めておくとなにかいいことがあるかも知れない。
2147538024
宿を取りそこねた気がする。間抜け。
どうすっかな。
検査数字をあつかう正規表現を作ることは可能だろうが、 どのくらいの長さになるのだろう?
- の位置もどうにかなるか...
良く考えると、たかだか有限なので正規表現で表現可能なことは自明か。
ふむ。
- を考えなければ、mod 11 で 9 桁なので、11 * 9 状態、かな。
- を考えると、さて、どうなるか... とりあえず個々のグループ・出版社の知識を使わずにやるとすると、 3つの - が連続せずに現れるとして、 大雑把にいって 11 * 9 * 4 状態?
検査数字をあつかうのと - をあつかうのは別の話なので、 分けて書いて、混ぜられるといいのだが。 共通部分をとればいいだけだが。
男と女にマッチするパターン: [12]
(JIS X 0303)
ISBN にくらべると面白みに欠ける。
CVS/Tag を 1.1.999 にした working directory を最初に作るまともな方法にはどのようなものがあるか? ここで「最初に」というのは 1.1.999 のファイルが一切存在しない場合のことである。
cvs -d ... co -r1.1.999 ... だとファイルが存在しないので空のディレクトリが順に消えていき、何も残らない。 Ctrl-C で止める、という方法はある。
また、trunk を co した後 update -r1.1.999 という手もある。 だが、全部取り出した後に全部消す、というのはまったくもって無駄である。
効率の点で最もいいのは CVS/Tag を勝手に作ってしまうというものである。
さて、これ以外に(なんらかの利点が存在する)うまい方法はあるか?
JIS X 0032:1999 情報処理用語 - 電子メール
というものがあることに気がつく。
cvs commit が起動したエディタが終了した後、 選択肢が出てくる条件は厳密には何なのだろう?
RFC 3187 を眺める。
仮想会話:
「壊れていないものには触るな」 「壊したら直していいですか?」
FSA: Finite State Automata Utilities
爪が伸びるとキーボードが打ちにくい。
人間は進化する必要があるのではないか?
今日のコマンドライン:
% sh -c '/bin/sh -c "echo $$ \$\$"'
Greg Stein も ViewCVS の annotation で colored aging をやりたがっているらしい。
colored aging というのが古さ・新しさに応じて色をグラデーションさせることのことだとすれば、 もし実装があれば政治的問題抜きで一発で放りこめるな...
ふと思ったのだが、正規表現から最小DFA に変換する場合に、 全体を一度に正規表現-NFA-DFA-最小DFA と変換するのではなく、 正規表現の部分式ごとに最小DFA を求めてそれを組合せ、 組み合わせるたびに最小DFA にしていけば、 無駄にでかい DFA を生成しなくても済むのではなかろうか?
cvs diff で wdiff が呼び出せればいいのに。
gcc でファイルの一部だけ optimize を効かせることはできないのだろうか。
そーか。 assembler に食わせる前のやつの optimize したのとしてないのを用意して切り貼りすればいいのか。
... label の renaming と inlining の抑制も必要であった。
CVSROOT を cvs で管理する必要はないことに気がつく。
実際、rm -f CVSROOT/*,v としても問題なく動作するようだ。
あるファイル x はリポジトリ内において、x,v に記録され、 あるディレクトリ x はリポジトリ内において、x に記録される。
ということは、同名のファイルとディレクトリが作れるかもしれない... できなかった。
検査してるようだ。
まぁ、想像通りのことがおきているなら、 それほど不思議ではない。
それはそれとして、話を出した時に浮動小数点に詳しい人の反応がなかったのは想定していなかった。
RFC 2373 の ABNF 記述は間違っていることに気がつく。 報告しておく。
ポータビリティ重視は生き残り戦略として解釈できると思うのだが、 そういう観点を述べた話はあるだろうか?
ABNF において、comment は ; で始まり行末まで続く。
comment = ";" *(WSP / VCHAR) CRLF
ということは、
CHAR = %x01-7F ; any 7-bit US-ASCII character, excluding NUL
という記述の意味するところは %x01-7F のあとに excluding と NUL というのが並んでいるのが CHAR だ、 と、そういうわけですか?
char-val = DQUOTE *(%x20-21 / %x23-7E) DQUOTE ; quoted string of SP and VCHAR without DQUOTE prose-val = "<" *(%x20-3D / %x3F-7E) ">" ; bracketed string of SP and VCHAR without angles ; prose description, to be used as last resort
とくに without は 2箇所も参照している場所があるわけであるし、 定義したほうがいいかも知れない。
報告しておく。
BNF で記述された文法が生成する言語が正規言語かどうかは判定できたっけ?
るびこんひゃっかいできるかな。
... 300回やった。
null terminate しないやつ、 buffer overrun しつつ null terminate するやつ、 buffer overrun せずに null terminate するやつ。
とりあえず因果関係はよくわからないが fix してしまったようだ。
(Solaris の)malloc の実装を知っていればなにが起きているのかもうすこし わかりそうな気がするが、知らないのが悲しい。 buffer を 1byte はみだして 0 を書き込むと何が起こるのだろう?
管理領域の破壊? 他のユーザデータの破壊?
Linux で 1000回。
とにかく Linux で再現すると話が簡単である... 作者の手元で再現させられるから。
だが、どうもそう簡単ではなさそう。 Solaris も Linux も稀にエラーが出るが、エラーの内容は違う。
(Bob Hinden によれば) 0:0:0:0::0:0:0:0 というのは valid らしい。
(こちらはまだ返事がないが、それはそれとして) ABNF に関する考えは間違っていた。
ABNF において行末は CRLF であるが、 RFC 2234 にはそんなものは含まれていない。 したがって、 comment 内部に許されていない bare-LF が存在する、 あるいは comment の終了を示す CFLF が存在しない、 と述べるべきであった。
なお、 rulelist には一つ以上の CRLF が必ず必要になるから、 (RFC が LF で行末を表す慣習である以上) RFC に正しい ABNF 記述を載せることはおそらく不可能であろう。
醜い醜い醜い酷い酷い酷い。
IPv6address = "::" / 7( hex4 ":" ) hex4 / 1*8( hex4 ":" ) ":" / 7( hex4 ":" ) ( ":" hex4 ) / 6( hex4 ":" ) 1*2( ":" hex4 ) / 5( hex4 ":" ) 1*3( ":" hex4 ) / 4( hex4 ":" ) 1*4( ":" hex4 ) / 3( hex4 ":" ) 1*5( ":" hex4 ) / 2( hex4 ":" ) 1*6( ":" hex4 ) / ( hex4 ":" ) 1*7( ":" hex4 ) / ":" 1*8( ":" hex4 ) / 6( hex4 ":" ) IPv4address / 6( hex4 ":" ) ":" IPv4address / 5( hex4 ":" ) ":" 0*1( hex4 ":" ) IPv4address / 4( hex4 ":" ) ":" 0*2( hex4 ":" ) IPv4address / 3( hex4 ":" ) ":" 0*3( hex4 ":" ) IPv4address / 2( hex4 ":" ) ":" 0*4( hex4 ":" ) IPv4address / ( hex4 ":" ) ":" 0*5( hex4 ":" ) IPv4address / "::" 0*6( hex4 ":" ) IPv4address
エルフの黒魔術の話を聞く。
教科書を掘り出す。やはり undecidable か。
ふと「色羊」をサーチしてみるが、見当たらない。
もしかして文脈依存文法を使うと醜くない定義ができる?
いや、書き換えによって省略を行なうと左辺よりも右辺が短くなるから句構造文法になるか?
ABNF のほうも返事がくる。 HTML だったのであやうく見逃すところだった。 まぁ、見逃しても問題ない内容だったが。
chroot 環境を作った時、 pty の割り当てはどうなるのだろう?
仮想端末自体は kernel 内の資源だけど、 device file は各 chroot jail 毎に、 owner/group/permission が別個に存在するんだよな...
他人のことをとやかくいうのは若い証拠だと思う。 だが、説教するのは年をとった証拠だともいう。
これらから導かれることは何か?
はじめて ruby をつかってみる。
[latest]