(追記: しまったぁああ! こういういいネタは上の「一行欄 (←勝手にそう名づけている)」にすべきだった!)
今日もあいかわらづ寒ひが、それほど薄暗い天気ではない。 どうでもいいが、新山はやや霞んだ空にながれるすじ雲が好きだ。あと、うろこ雲も。 とくに 5番街のビルの谷間から見える、縦に長細い空のあいだにすじ雲が泳いでいると、 それがまた水彩画のように見え、はるか彼方まで世界が続いているのが感ぜられる。
ああ、ブログロ風。
x - int(x)
とか math.fmod(x, 1)
でできるのだが、Python の癖からいって、この手の操作には古くからの
組み込み関数がありそうな気がする。でも abs とか round はあるのに
小数部分だけってのはないのな。変なの。使いみちがすくないからか。
てくるで RFB 部分の実装がほぼ完了した。これで vnc2swf.py のための基礎技術はそろった。 ついでに vncrec 相当の機能もとり入れた。こうなると VNC は単にネットワーク上からの 画像入力デバイスのひとつにすぎなくなる。つまり、vnc2swf は
{vnc, vncLog(vncrec形式), swf} (+ mp3, png, etc.) → swf
という変換操作をおこなうプログラムになるのだ。とうぜん 100% python (+pygame) なので Windows 上でも動くはず (GUI をどうするかは今後の課題だが)。 もともと、スピードの問題から Python で書く気はなかったのだけど、 pyvncviewer というのがあって、これは Twisted と Pygame をつかって書かれている vnc クライアントなのだが、 やってみたらそこそこ速かった。「あれえ? いけるじゃん」つうことで、 RFB の仕様書を読んでみるとこれがえらく簡単で、べつに Twisted を 使うまでもなくて、まあそういうわけです。 ちなみに、そう思ったとき書いた日記がここね。
一度やってみたいのだけど、 プログラミングコンテストなどで この手の画面キャプチャーをつかって複数の参加者の画面を合成し、 制限時間内でかれらがいかにコードを書いていくかを比較してみせたらおもしろいだろう。
しかし、われながら、平凡なアプリケーションつくってるよな。平平凡凡。花鳥風月猪鹿蝶。
リゾットだと? 雑炊と言え!
こう考えたのは TaOS というオペレーティングシステムに関する論文を読んだからである。 まだいっぱい書きたいんだけどねむくて以下 todo
今朝みた夢を順を追って話していくとこうなる。
それにしても夢の中では日本人も米人も出てきたが、 かれらはいったい何語で会話していたんだろうか?
TOrakkuBakku?フジ、ライブドアにTOB協力要請・ラ社は拒否 (20:48)
ipadic/Noun.name.dic
を食わせる:
#!/usr/bin/env python # -*- encoding: euc-jp -*- import fileinput, re dic = {} PAT = re.compile(ur'[\u4e00-\u9fff]') # kanji for line in fileinput.input(): f = unicode(line.strip().replace('(','').replace(')','')).split(' ') (t, w, y) = (f[4], f[6], f[9]) if len(y) < 3: continue if t not in (u'姓', u'名'): continue if not PAT.search(w): continue yc = list(y) yc.sort() k = ''.join(yc) if k not in dic: dic[k] = [] dic[k].append('%s:%s(%s)' % (t,w,y)) for (k,v) in dic.iteritems(): sei = [ w for w in v if w.startswith(u'姓:') ] mei = [ w for w in v if w.startswith(u'名:') ] if sei and mei: print ' '.join(sei), 'x', ' '.join(mei)
これは姓と名に同じ文字が使われていれば、文字コード順にソートしたときに 同じになるはずだという原理を利用している。
で、その結果 (面白そうなやつだけ抜粋) :
小浪 美奈子 (こなみ みなこ) 穂積 みづほ (ほづみ みづほ) 鶴見 満 (つるみ みつる) 桝谷 保馬 (ますや やすま) 成本 斉朝 (なりもと なりとも) 木塚 香月 (きづか かづき) 三好 芳美 (みよし よしみ) 迫田 さだ子 (さこだ さだこ) 秋定 貞明 (あきさだ さだあき) 青木 昭雄 (あおき あきお) 小本 トモコ (こもと ともこ) 三岡 勝臣 (みつおか かつおみ) 佐伯 咲恵 (さえき さきえ) 江本 巴 (えもと ともえ) 北道 民吉 (きたみち たみきち) 狭山 昌也 (さやま まさや) 秋吉 義明 (あきよし よしあき) 小中 佳奈子 (こなか かなこ)
実際には、「人見 ひとみ」のような姓と名が同音のものも取れてしまうし、 あまり名前っぽくない単語が姓と名の両方にふくまれていたりして、 完全におもしろい名前だけはとれない (たとえば「春町」は姓と名の両方に入っているし、 「姓:小番(コツガイ) x 名:外骨(ガイコツ)」なんてのも出てくる)。 でも ipadic の固有名詞はほとんど実用にならんが、オモチャとしては果てしなく遊べるのう。
どうぞ、どうぞ!
<!-- ★ブラウザによってトップニュース見出し上下の罫線の出し方を変える★ --> <noscript></tr></table></noscript>
くそっっっったれ。<noscript>
もネストしてないのか。
どつぼ。 (まあ予想はついていましたが)
HTML 文書を DOM として保持するのはもう不可能なんじゃないかという木がしてきた。 むしろこれは「いいかげんに開いたり閉じたりするタグの集まり」として解釈すべきなのカモしれない。
つうか、こういう物理的実体のない要素はむしろ <? ... ?> と似たような 「パーザへの指令」として解釈し、じっさいの DOM はそれらの場合分けが 終わったあとで (つまり noscript なんかは除かれた状態で) 作るのがただしいやり方のような気がする。 しかし、それでも「浮いた form」の問題は存在するよな…。
もう今日はネムすぎてだめ
“私はもっとも頭のいい時にプログラムを書き、 それほど頭のよくない時に文章を書き、 いちばん頭がよくない時に論文を読んだ”
ああ、アホらしい。
てくるで、"forward security" は日本語でどう訳すのがいいんだろう。 openssh のマニュアルを翻訳した当時、新山はこの言葉が専門用語であることをわかっておらず、 「進歩したセキュリティ」などと訳していた。 しかし、いまになってみるとこれは間違いだが、 あらためて検索してみても forward security の 訳語は見当たらない。AC には書いてあったっけ? とりあえず「将来的な安全性」とか訳しておけば平穏か。 しかしこれだけでも何のことだかよくわからない (もともと英語でも意味はよくわからんのだが)。 そもそも、ここで "security" という単語を使うのはあいまいである。 "forward secrecy" のほうが状況を正しく言いあらわしていると思う。
(追記: AC にも訳語は使われていなかった、そもそも forward secrecy に関する説明があまりない。 EKE とその拡張 [Bellovin, Meritt] についての記述はあるが、 「古い K を復元したときの攻撃を防ぐ」と書かれている)
-Wall -Werror
をつけてコンパイルできないようなコードは全部ダメなんだよ。
ちなみに新山の専門は自然言語処理です (いちおう、対外的には) 。
startswith
に
渡す引数の順序が間違っていたというアホきわまる原因であった。
Lisp きらい。結局、subseq すべてをフックして ACL と完全互換なふるまいにするようにして
むりやり解決。
で、このプログラムが何をするかというと、下のような文章を解析して、 こんな意味構造をつくる。
Flight attendants for America West Airlines neared a strike Friday, rejecting binding arbitration with the airline over salary issues.
"attendants" が "near" と "rejecting" の両方の主語になっていることに注目。 修飾・被修飾の関係もきちんと解明されている (じつは一か所間違ってますが)。 また、この例ではわからないが、GLARF のすばらしいところは 並列構造を非常にきれいなやり方で扱うことだ。でも、コードはめちゃくちゃ汚いけどね。 ここに言語「学者」と計算機「屋」の違いがあると思う。 しかし、素性のよくわからんデータを一生懸命いじくって 「精度が数パーセント上がった」とかいって喜んでる人々よりは、 ちゃんとこうした言語学的なバックグラウンドがある研究のほうがどう考えてもまともだ…。 というか、ある学問分野の「まともさ」というものについて考えさせられる。 Proceedings を見ればそのテの研究ばかりが幅をきかせている学会に魅力ってある?
あー、そうだ。よく見たら、矢印の向きは逆にすべきだったかもしれない。
おんなじこと考えている人は沢山いるということの証明:
google://Mac Mini 弁当箱/ (5,170)
ふと思ったんだけどタルタルサイエンスというのはタルタルソースをいつ
かけるかあるいはまたその成分はとかに的をしぼった科学という意味だろう
か?
tkrd、
安いくつしたを買うとなぜダメなのかがわかった。ゴムがのびてすぐにユルユルになってしまうのだ!
ピザの海? それとも海のピザ?
ひとつの今日たるハッケンをここにお記ししよう。それはいままで、新山が 「うるさがた」という人種のことを、「うるさ方」と書くのだと思っていたと思っていたと思っていたと、 いう、とこである。ところが、それは、ちがった。大辞林に、よると、「うるさ型」に、なっている。 いや、なっていた。すくなくともいまのところは。てくるでだ。
世の中御用の方 (かた) が多いのである。かたではないぞ。ホーだぞ。 ホ↓ー! ひとつ注意。ここでひとつの注意。 この「ホ↓ー!」の使い方は標準語のそれと同じではない。 ひょじゅん語のホーは数学的厳密敵には「ホ↑ー」と記述し (denote)、 これあはふつう語尾末尾が上がるが、長野では下がる。 そしてそしてこれは「ほら」或いは「ほれ」のような意味にとられる。 つまり「ハサミ貸して」「ホ↓ー! これ」のように使う。 ここで良識ある人はオラホウを認識するがそれは連想ではない。 以下長文。
(あなたへの注意: わざとです)
どうでもいいが、別に新山は Wiki のエキスパートではないのだが、 なぜか moinmoin を使っているというだけでこのあたりではそう見られるらしい。 システム組の連中から、セキィリティとユーザ管理をちゃんとやってる Wiki って知ってる? ときかれた。 ユーザ管理をちゃんとやりだしたらそれは もう Wiki じゃないだろうと思うのだが、Plone をすすめておく。 といっても新山もほとんど使ったことないのだが…。 しかし Wiki やら Plone やらのセキュリティ意識が彼ら system people のポリシーに沿うかどうかはなんともいえんがね。 だって連中はみんな OpenBSD ユーザーなんだよ? 「こんな危険なモン動かせるか、ばか!」と言われそうな気がする。
雪がふったようだ。道路はつめたく湿っている。 今日は午後からちらついていたが、ちょうど幸運にも新山が外出していたときだけは 降っていなかったらしい。久しぶりに底冷えのする一日だ。った。さて。
“地獄の沙汰も SATA RAID”
オヤギャグ注意報 !!
てくるで、思うでのすが、オレの使ってるフォントだと「!」っていう記号が鉛直に上を向いててつまんないよな。 スピード感あるれふ驚き (なんだそ) の場合は、「!」のようにナナメに なってるほうがいいのだ。だが、斜体にしただけではいまいちパンチが弱い。
まあ、どうせこんなのは、今後しばらくのうちはただのコケおどしに過ぎないだろうが (今までもそうだったでしょ?)、 いかにもアメリカンが喜びそうなことだと思う。 なにしろ、缶詰を切るのにわざわざ電動の機械を使うアホンダラだからな、こいつらは。 「将来的には人が一人も戦闘で死なないようにするのが目標」だってサ。 ちなみに彼がいってる人というのはアメリカ人のことだからね。 だからこの国は 70年代から AI 研究に莫大な金をかけてきたのだ。しかし、TSS の発展も GNU の登場も間接的には国防総省のカネによって生まれたといえるだろうから、オレとしては全部が全部 間違いだったとは言えない。けれども、いずれはへっぽこロボットが実際に戦場投入され、 さらに金と時間 (と、バグによるアメリカ人の人命) がムダになる日は近いだろう。 べつに 12歳の子供が抗うつ剤のんで祖父母を射殺したとか、炭坑で何百人死んだ、とかいう ニュースにはたいして落ちこまないが (いや、多少は落ちこむが、それはもう起きてしまったわけだし)、 こういうニュースは将来にわたって落ちこむ下り坂を保証するので、確実に憂鬱度。
まあ、オレは、ロボットが本当に (人間のコントロールを超えた) 脅威になるまえに、 さっさと死んじまうことにするぞ。もし、生まれかわるほど十分に罪深くなければ、 そのまま土になれる可能性が高い。
土葬だって?
研究 todo:
雨ふってるのー
fprintf(stderr, "keylen=%d" % keylen);
形ある物はいつかは壊れるが、それらは何度でも修復され我々の目の前に現れる。 つまり形があろうとなかろうと同じってことだけど。
どりぞるひや
regardless to say, オレはどんなことがあってモ「ぞうぴぃ」と呼ぶぞ!
いや、そもそも呼ばないけど。呼ぶ機会ない。
火曜日はミーティングで 1時間つぶれて、そのあと講義が 4時間あるので、 ほとんど仮想的に (virtually)何もできない。やっぱ機械学習の授業に出るのやめようかなあ。 これは単に聴講しているだけなのでいつでも切ろうと思えば切れるのだ。が、宿題きつくてみんな大変そう。
なにかほかに書くことがあったはずなんだけど。
*regularization-transforms*
というリストに入っていて、
それらがひとつずつ funcall
されていく)。で、
ある種の特定の木を食わせると、そのうちのどれかがバグになって、
とりあえずその関数まではつきとめたのだが、デバッグのやり方がわからない
(いまのところ新山は clisp を使用しております)。というか、コードがあまりにも入りくんでて:
このうちのどこかでエラーが起きるのだが、コードが ひどく関数型なやり方でかかれているために、 トラップを仕掛ける場所がほとんどないのである。 そもそもオレはテキストベースのプログラムでは、いつも「標準出力に表示させてログを見る」 という原始的な方法でデバッグしている。C を使っているときは gdb も使うけれど、 スクリプト言語では圧倒的に標準出力派だ。でも、こういうコードだと 行ベースであれこれ挿入したりできないので、こういうときに Lisp/Scheme って不便ねー。 Scheme をやっていたころは副作用 (表示) だけを起こすデバッグ用の関数をつくって(if なんとか (setf rest (mapcar #'(lambda (x) (cond ((and (proc1 x) (not (proc2 x nil)) (member-if #'(lambda (y) (member y '(cc dd))) x :key #'friendly-car)) (proc3 (proc4 x))) ...
(問題の式1 (dbg (問題の式2) "value=~a"))
などとやっていたが (dbg は第1引数をそのまま値として返すのである)、
いちいち (dbg )
をはさむのは大変つらいよ。
Python とか C の場合はさっさとコメントアウトできるのにね。おそらく、この場合の正統派なやり方は
Lisp のデバッガを使って追っかけることだろうが、新山は Lisp のデバッガって
フレームを見るぐらいにしか使ったことない。で、この場合は -interactive-debug
を入れて
:bt
すると、大量のフレームがガーーっと出る。読めねーよコノヤロー。
おまけにここで表示されるソースはすべて大文字化されているので
とても読みにくい。変数を評価するにもわざわざ大文字で入力してやらねばならない。
おまけにちょっと間違えるとレベルがいっこ上がるし、まちがえて :q
押しちゃうと
全部パーで toplevel に戻っちゃうし、地獄だよ。
> (subseq "abc" 0 5) ACL: "abc" CMUCL: error CLISP: error > (position-if (lambda (x) t) '(1 2 3) :start 5) ACL: nil CMUCL: nil CLISP: error
けっっっ、なーーーーにが標準だよ。ばか。こんな基本的なとこで違うな!
今から満腹中枢の働きにより死にそうに眠くなるまでの間が仕事をするさいごのチャンスだ。 あと 10分。
このところ毎日ぜんぜん違うことをやっている。 土曜日は Flash の仕様書を読み、vnc2swf をいじっていた。 日曜日は html パーザを書いていた。 きょうは CL にあけくれている。 ちなみに明日は RSA と AES, SHA1 ライブラリを使って暗号化ツールを作らねばならない (授業の課題なのです)。あ、ついでに機械学習の授業もある。 つくづく節操がないと思う。それはときにはいいことだが、ときによくない。 新山の場合は…よくわからない。
この手の言語の欠点がひとつ (自分にとっては) 明らかになった。 ある種の人々は「あることをやるのに、いくつものやり方があるほうがいい」というような ことをいう。しかし新山のような人間にとって、下手にいくつものやり方が可能だと、 細かいところで永久に考えこんでしまい先へ進めなくなる。 これはオレがバカなせいなのかもしれない。まあそれはそれでいいが、 むしろ枝葉の問題は放っておくことを強制させられる言語のほうがいい。 もちろん、これはバランスの問題なのだろうけど、言語を必要以上にこまかくしようとする人々が いつまでたってもうさん臭く見えるのはそういうことだ。
すくなくとも、新山にとっては
オレは計算機の操作を自動車の運転のようにみなしている若者 (=バカ者) を嫌悪している。 これは同族嫌悪か? そんなことはないと思うけど…。頭の回転速度とプログラミングの上手下手は まったく関係がないということは、そのうち示されるであろう。 もうすでに自明か。
ああそう、それってどういう意味?
スクリプト言語用の dmalloc とでもいうものはあるんだろうか。誰か作ってそうだな。 「指定した変数 (あるいはリスト) の大きさがある一定以上を超えたら例外を出す」って オプションがグローバルに使用可能だとうれしいのに。
とりあえず、すべてのエンコーディングが 0x20 以下の octet をアルファベ集合に含めていないのであれば (つまり utf-16 以外)、 改行コードで確実に文字が切れると保証できる。UTF-16 はどうするかって? 氏ねばいい。 でも、どちらにせよ、 1行をいちどすべてバッファに淹れなければならない。 もし 100MBytes のファイル中に改行が一度もなかったらどうするのだ! 「キチガイ的に conservative なメモリ消費量」の目標が達成できなくなってしまうな。
だうでもいいが、サマリーを出してるやつがこんなこといってるのがムカつく (強調新山):
... I just couldn't follow everything about stateful and stateless decoders/encoders and the issues;
I'm American so Unicode just doesn't fit in my brain well.
ちなみに、この国の計算機業界における Unicode (あるいはそれ以外のコードや、文字コードにまつわる一般的な問題) の 認知度の低さにはすさまじいものがある。彼らは「UTF」という単語すら知らない。 もっとも、日本人であっても新山の周囲では誰もそんなこと知らないが!
ご飯を食いながらテレビをみていたら、Iron Chef America をやっている。 基本的な構成は日本のと同じだが、日本のに比べてセットがはるかに安っぽい。 まあ、アメリカのこういう番組はみんなどれも金なさそうだからな。 それからシェフをはじめ、審査員がみんな太っている。で、食べ方が非常に キッタナイの。つうか、べつに景山民夫の食い方がとくに 上品というわけでもなかったが、もうちょっと放送向けのふるまいというものがあるだろう。 昨日は日本版がまたやっていたからちょっと見たのだが、 日本版で演出されていたようなクラッシぃな (かっこわらい) 雰囲気はまるでなかった。 あくまで「軽い」のだ。まあどうでもいいけろさ、べつに日本でも料理のテツ人が好きなわけでは なかったのである (そもそもテレビなかった)。
さいきん、この日記に暗いことや恨みがましいことをあまり書いていない。 だいぶんフッきれてきたのかとも思うが、これは由々しきことだ。 日記というのはそのためにあるのだから。ゆゆしき。初心に帰るって大切ね。 というか、他人に対するグチなどは本来どうでもいい (オレにとっても、その当人にとっても)。自分に対する愚痴こそが重要なのである。
てくるで、雪まつりといえば 十日町ですよね (類似品にご注意ください)。雪国の町におけるささやかな明るいイベントであって、新山もむかし行ったことがある。 飯山線で。しかし、あなどれないことに十日町は「町」と名がつくくせに実は 十日町市であり、十日町村 → 十日町 → 十日町市 と変遷してきたのだ。 まあ長野でいうところの大町 (市) とか信州新町 (まだ町だが、昔は信州新町村だったはず) と似たようなもんだね。 しかし佐賀だったかには「大町町」というところがあるっ。スジを通すところとみた。えらいぜ佐賀。
(文字列 + 文字列)[:-1]
なんてやらない、つまんない場合分け多数)。
このあと何をいっても面白くないので割愛。
<SCRIPT LANGUAGE="JavaScript"> var random=new Date(); document.write('<SCR'+'IPT LANGUAGE="JavaScript" SRC="http://adnet.asahi.com/js.ng/pagename=toppage_banner&transactionID='+random.getTime()+'?">'); document.write('</SCR'+'IPT>'); </SCRIPT>
赤字で書かれた部分がひどく 4.0 準拠じゃない
(CDATA 中には </
という文字が入ってはイケない)。
Mozilla や IE では動いてるみたいだが、バカやろー。
ちなみにじつは CDATA の規定はかなりややこしいことがわかる。Wikipedia などを見るとこうなっているのだが、
<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/skins/monobook/main.css"; /*]]>*/</style>
これは HTML 4.01 では import が有効になるはずだが、 いったいどのブラウザで有効になるのだろうか…?
(追記: これは、XHTML 1.0 での話だった)
alias bc=python
どうでもいいが、Weather.com が激使いにくくなったので勝手に期待するけど、 Google Weather は出ないんだろうか? ここまで来ればもう奴らはなんでもアリだろうから、 あとは時間の問題だろう。