(8/21-28) 出張のため更新できません。 と思ったんだけどね。
どうでもいいけど、スイスでは郵便局でパソコンが売っている (韓国でもパソコンは郵便局で売っているらしい)。iPod も売っている。 ヘンなの…
いや、それはあきらかにヘンだ。「パソコンが売っている」とは言はない。
さて、このあと新山はあしたのセッシォンは予告どおりサボり、 ふたたび貧乏旅行に突入するのであります。つっても、もう十分すぎるほどに カネを使ったが (散財したという気はまるでしない、むしろ質素な生活してるのに、 みるみるカネが減っていく恐怖を味わった)。そういえばいままで海外旅行で安くて驚いた ことはあったが「自分のふだんの生活よりも高くて驚いた」ことは初めてだなあ。まったく、 世界でいちばん物価が高いのは東京とニューヨークだ、とかいったのは誰だよ? 大ウソだ。
(以下音信普通)
きのうは CORNAVIN 駅の近くのあやしいアジア料理屋にいった。 なんかスイスらしくない、きったならしいところで、赤ちょうちんや まねき猫や浮世絵ののれんが置いてあったりするのだが、 入り口には「SUSHI / 日本料理とタイ料理」と書いてある。 そして店員は中国語をしゃべっており青島ビールのビンが出ていた。 うわ〜、あやっし〜。しかしこういう無国籍アヤシイ風な雰囲気に 新山はひどくよわいので、吸いこまれるように入る。"Riz Porc Curry Vert" というのは たぶんグリーンカレーのことだと思うので注文。11sfr。なんか 青椒ロースの塩味版みたいなやつ。味はわりとまともだった。 やっぱ小麦粉ばっかり食ってると人間ダメになるからね。
それにしてもカミナリがゴロゴろすごい。
きのうは案の定、さいしょのヒコーキがおくれたので、パリに着いたのは 朝10時すぎだった。その時点ですでに接続の飛行機の離陸時間すぎてるよ。 ざけんな。おっここは結構レスポンスいいぞ。もうすこし書いちゃおうかな。 で、しょうがないので次の 1時の便に変更してもらって、お詫びのつもりなのか 「タダ汚職事件」をもらったので、空港のカフェでまずいサンドイッチを食う。 Euro はもってないしフランスでは 1銭たりともカネを落としたくなかったのだが (新山はアメリカと同じくらいフランスが嫌いである)、なんとか無事に ジュネーヴについた。そしたらまたフランス語わかんなくてこまるなあ。 つづいての問題は空港からどうやってホテルに着くのか? ということである。 こういうときにタクシイを使うのは敗北であるので、 どうにか公共交通機関だけを使って勝負したい。するとどういうことになるか? この場合、問題は再帰的に定義される :
どうでもいいけど、ここは物価高いよ! ニューヨークよりも高い。 びっくりした。ホテルもメチャクチャ高いし。あいかわらずの ドケチ旅行精神でやってるのでたいへん精神衛星的によくないところ(てくる)である。
MS-Research の研究者がオレと似たようなことをやっていた。 EMNLP にも論文が出てたのだが、やっぱりなんつーの、アレ、 quantitization の仕方がうまいよ。評価できないものを むりやり数字に落とすっつーか。やっぱアメリカンはそういうのがうまいのな。うん…
で、これからレセプションなんだけど、タダ飯が出るのか? ならオレは出るぞ。食い物がなきゃ帰る。(あっても食ったら帰るけど…)
ところで、マツモト先生は柔道にメチャくわしい。 オリンピックの審判について熱く語っていた。 タナカ先生は一時は調子が悪くて海外出張をキャンセルしていたと 聞いてたが、今回は来ていた。「キミは最近ちゃんと研究してるのか、 また余計なことに手出ししてんじゃないの (いつものように) ?」 と釘をさされる。まさしくそのとおりで。
ま、どっちにしろ、今夜はオレはこの国にはイナイのだが。
……−ーーっと、してる。 恐しいほどにヤル気不足なので、こういう時は、 おかしくなるし語順も、そもそも、文法が、
〜 なんでここで蚊蚊って? 知る蚊
てくるで「絆」を「きづな」と読む例が辞書に載っていないのはなんでだろうkwa? もともと、これは綱だったろうに。そういえばむかし日本に来ていた韓国人の留学生から、 「日本語の発音は難しい、『ぢ』と『じ』が区別できない」といわれたことがあるが、 そりゃ日本人でも区別できないっての。
、ソレが人間じゃない、という事実には目をつぶろうぜ。なぜってオレも人間じゃないし。〜
オレはゲイームが得意じゃない。技術的にヘタなうえに集中力がなくてすぐにダレるのだ。 しかしそのほうがのめり込まないのでいいといえる。
ゲイームっって何??? ?
ところで、ドゴーーる空港で乗り換え時間が 50分しかないのだけど、 はたして間に合うのだろうか…? ま、同じ delta だからターミナルは同じっぽいし、 遅れないかぎりは大丈夫だと思うケド。 (このあいだの旅行のときは最初の便が 1時間ちかく遅れたため、Heathrow で見事に一本トバしました)
米国から欧州に行くと、だいたい夕方に出て朝着く、というパターンだ (逆に帰りは午後に出て NY にその日の夕方か夜着く、時間が戻るので)。 これは非常に便利でよろしい。ねむいけど。
ところで、ずっと前から「なんでスイスのドメイン名は .ch
なんだろう?」
と疑問に思っていたのだが、それはこういう理由だった。
直径10ミリでちゅ だから半径5ミリでしゅ おいしいでちゅ ぱく
今日は暑いからかな〜〜〜〜〜〜〜
(歌詞を引用すると JASLAC に叱られそうなのでやめました)
プログラミング言語で重要なのは、
「いかに書くときにナマケられるか」ではなくて、
「いかに読むときにナマケられるか」であるような気がする。
たとえば Perl や C++ は書くときにナマけられるが、読むときにはナマケられない。
「この言語 / このライブラリなら、これがこんなに簡単に書けますよ」といううたい文句はすでに腐るほど見ている。
でもみんな「これがこんなに簡単に読めます」という文句を聞かないのはなぜだろう?
しかしプログラムを書いた時点で、すでに「読むためのコスト」は発生してしまっているのだ。
問題は、そのコストはいったい誰が負担しているのか? ということを考える必要があru。
自分ひとりで開発をしている場合には、そのコストを払うのは (後日の) 自分である。 それはいい。ワンライナーの場合なら、そのコストはほとんど払う必要がない。 なぜならすべてのプログラムは使い捨てであり、基本的には実行したらもうそれが読まれることはないからだ。 「使い捨てプログラム」という考え。 しかしそれ以外のプログラムではどうか? とくに COBOL や Java などで 大規模な人数の開発をやっている場合、そのコストは書いた本人が負担するのではない。 このコストは現実のお金のように保存則が成り立つものではないだろうから、 それはおそらくチームの間に拡散しながら増幅していくのではないだろうか? このコストを抑えるのはおそらく伝染病をおさえるのと同じくらい大変だろう…。 話が曖昧になってきたのでやめる。
それからもうひとつは全然べつの話だが、Python がサイコーなのは オブジェクト至高言語なことでも関数風味なことでもなく、「手続き言語として」サイコーなのだ、 ということに気づいた。今になってみると、Python がとりわけ直観をサポートするようにできていたのは、 インデントだけではないと思う。いい例がタプルである。 これは、本来なら一度にひとつの値しか使えないところ (配列の要素とか、関数からの返り値とか、 変数への代入) に複数の値をまとめて渡すことができるので、結果としていくつもの状態を 別々に管理するような状況で気をもまなくてすんでしまう。これによって制御構造が極端に単純でも、 あまり気にならない。これにひきかえ、たとえばループを表すのに Ruby のイテレータがわかりやすいとは 到底思えないし、Scheme の末尾再帰がわかりやすいとも思えない (複雑な状態遷移があるものを書くとウンザリする)。 彼らのアプローチは概念的に単純ではあるが、それによってループが直感的に書けるかというと べつにそういうわけでもないのだ。
もちろん、現代の言語はもはや言語本体だけの問題ではないので、 ライブラリも同じように「読むのが簡単」な設計のほうがいいと思う。 でも、そういうのってなかなかないよなあ。Java なんか、読むのも使うのも大変そうのばっかりだけど…。 しかしさすがに Python でもライブラリまでは言語本体ほど考えぬかれてはいない。 urllib2 なんか、ヒジョーに使いにくいし…。
つうわけで、きょうの電波終了。
iChatAV さあ、カメラの感度と マイクの感度が調整できると非常にいいんだが。…
いや、そういうのはほんとに欲しい。ポルノフィルタとともに、 ブログロフィルタも作るべきだ。検閲! 検問!! 検閲反対!!!
男 男
\ /
/ \
女 女
これは本来「クロス接続」って呼ぶんじゃないの?
むしろ、こっちのほうが感覚的に「ストレート接続」に近い:
男――男
女――女
仮の結論: したがって、「ゲイでない人々」を「ストレート」と呼ぶのはおかしい。 「クロス」と呼ぶべきだ。
しかし、待て。ほんらい「クロス接続」ってのは、 コンピュータとコンピュータのように「同種のもの」を接続するときに使う方法だよな。 ストレート接続はコンピュータとモデムとか、ハブとか別種のものどうしを接続するときの一般的な方法である。 コンピュータどうしがストレート接続できたら、それは何かがどっかでひっくり返っている、 ということになる…。とすると、やっぱりゲイのほうが「クロス」なのかな? するとゲイでない人々は「ストレート」で合っていることになるが、 そうすると男女のどっちがホストでどっちがハブ (あるいはモデム) なのか、という問題が生まれる。 しかしあきらかにこれは政治的公正さを欠いた世界であるように思われるね。
(ちなみにマイノリティ指向の新山ですが、この件に関しては例外的に多数派に属しています。)
(追記 17:46) いま試してみたが、やっぱり SD のほうがでっかくなるよ? これはこういうものなのか。
>>> def compare(seq): ... from math import sqrt ... n = float(len(seq)) ... avg = sum(seq)/n ... sd = sqrt(sum([ (x-avg)*(x-avg) for x in seq ])/n) ... ad = sum([ abs(x-avg) for x in seq ])/n ... print "n=",n, ", avg=",avg, ",sd=",sd, "ad=",ad ... return ... >>> import random >>> compare([ random.gauss(0,1)*100 for x in xrange(1000) ]) n= 1000.0 , avg= -0.612653403904 ,sd= 98.9802171129 ad= 79.3737812504 >>> compare([ random.gauss(0,1)*100 for x in xrange(1000000) ]) n= 1000000.0 , avg= 0.0433127277347 ,sd= 99.9220247525 ad= 79.7167071996 >>> compare([ random.random()*100 for x in xrange(1000) ]) n= 1000.0 , avg= 51.306821953 ,sd= 28.4525020645 ad= 24.442774058 >>> compare([ random.random()*100 for x in xrange(1000000) ]) n= 1000000.0 , avg= 49.962770129 ,sd= 28.8904325556 ad= 25.0226289558 >>>
日本語ってムズかしいね。ゲンモン (言問)
(「助けてください」と打つのを間違えた: kudasai → duasai)
てゆうか、あんなの、ヨケられるわけねーーだろ、ぱか!!
HTML (ほとむる) パーザを書いたのだが、ふつう HTML のエレメントは 木構造をなしていると仮定してもいいだろうと思った。 ところが、さる大企業のページには、こんな HTML があった:
なんだこりゃああああ! パーザはこれが木構造であると仮定しているので、 これでは </table> の閉じタグがきた時点で form も自動的に閉じたことになってしまう。 ぱかぱか。この野郎。氏ね。 お前なnka w3c になぶり殺しにされろ (興奮のあまり途中で英数字モードになってしまいました)。 お前なぬか。ぱか<table> <form action="..."> </table> ... <input name="a"> </form>
しかし現在の新山の課題はそういう URL も取れということにある。ヶ国。
まあ特定のサイトだけの話だからそうひどいことではないのかもしれないけど。
(いま「苛酷」と入力しようとして「かこく」で変換したらこれが出てきた)
Release Engineering とは何ぞや? その名のとおり 「大チームからなるソフトウェアプロジェクトで、製品を正しくリリースする技術」である。 個人が一人で開発してる場合にはあまり関係ないが、大規模なパッケージソフトウェアに なるとこれは大変だ。社内でいくつものプロダクトが進行しており、それぞれに対して、 バグの修正・クレーム対応と検査・新機能の追加・新製品の開発が同時に起こっており、 しかも製品は定期的にリリースあるいはバージョンアップしなければならない。 ソフトウェア企業にはこうしたリリース管理を専門におこなう人がおり、 もともとは Quarity Assurance 部門だったのだが現在は独立した部署になっているところが多いという。 こうした人はつねにプログラマの動きと開発状況を監視しており、報告されたバグをすべて直したか? どの機能を優先に追加すべきか? といった管理をおこなう。VMWare でも何人かがそういう仕事をしているらしい。 オープンソースでもこれは同じだが、今のところ Mozilla とか Samba とか Linux とかいう 大プロジェクトでしかこの手の対応は行われていない (Gentoo でもやってるそうな)。 でも Bugzilla や Tinderbox は ツールとしては使えるので、使ってみてもいいんじゃないの? という話であった。 しかしオレとしては VMWare 内部の話のほうがおもしろかったね。 VMWare の開発ツリーには活性化ブランチはいくつあるのか? とか、 ビルドが失敗しつづけたらプログラマはどうするのか? とかいう質問があった。 もともとこの人はプログラマだったのだが、ある日自分の修正でビルドがうまくいかなくなり 「お前、ちょっとリリース管理部門に来い」と言われて来てみると、 こっちのほうが開発全体の流れが見えておもしろかったんだそうだ (普通こういう開発環境ではプログラマは巨大なソフトウェアのごく一部しか知らない)。
で、トークのあと今日は VMWare のご好意により大々的なプレゼント大会があった。 デモCD とか VMWare Tシャツとともに、なんと VMWare Workstation の正規ライセンス ($200 相当?) を 抽選で 5名様にプレゼント! なのであった。フトッパラ! まあ、オレははずれたけど。 そのあとみんなでいつも通り TGIF に移動し飲み会。きょうは隣りに座ってたおじさんは Scheme 好きだった! もともと LispNYC 経由で NYLUG のイベントを知ったそうで、 Scheme ではとくに Tiny Scheme がお気に入りらしい。 小さいわりには正規表現や TCP/IP が使えたりするのがすごいので、実際に製品に 組み込んで使っているそう。たしかに既存のソフトウェアに組み込むんなら、 Scheme って簡単だもんなー (で、そのおかげで何千という Scheme 実装が世の中に存在するわけだ)。 そのあと「昔はよかった」系の話で盛り上がり、むかしの Usenet がいかに有用だったか、 みんな実名だったし、投稿するときはキンチョーしたよねー、とかいう話をしていた。 やっぱり、アメリカ人でもちゃんとしたグループに投稿するときは緊張するんだ。 しかし日本じゃ fj や japan はほとんど終わっているが、彼によると英語圏でも現在 まともに機能しているニュースグループはわずかしかないらしく、 「AOL ができて、山のように人が来てから何もかもダメになった」という。 で、TGIF でモノを食う気にはならないので、結局ビール一杯だけ飲んで帰ってきたが、 やっぱりオレは酔うと英語が聞けなくなるらしい。
さて、ここで一句 :
てくるで Gentoo ってみんなホメるよなあ。使ったことないけど、そんなにいいのか…
google://森林太郎 しんりんたろう/ (8件n)
別に深夜まがしあわせなわけではないのに、 google://しあわせ/ で Google 検索すると「山形しあわせ銀行」などというものが存在することがわかる。 あやしい銀行だ。
よく、某掲示板などで「とくに目的もないが×××言語を覚えたいんです」といった 書きこみをする人がいる。その手の初心者がどれくらいの割合いるのか 知らないが、そういったタイプの入門がうまくいくとは思えない。 言語を覚えだすためのきっかけは、やや強制的なほうがいいと思う。 たとえば中国へ旅行すると嫌でも中国語をすこしは見聞きするし、 ドイツへ旅行すると嫌でもドイツ語をすこしは見聞きする。 それまでその言語に興味がなくても、ある程度強制されると親しみがわくといか、 旅行後には「ああ、これって結構面白いかもな?」と思い、 その言語に興味をもつようになる。同じように、プログラミング言語にも そういった状況が必要なように思われる。「他言語への旅行」ができないかな? ツアーを企画すればいいのだろうか? しかしどうやってユーザがその言語を使わざるを得ないような状況を 意図的につくりだす?
Google や JPL でしばらく働くと「Python 文化」にどっぷりはまって帰ってこれるのだろうか。
そして、発見者はいつもかならず不遇な人生をおくる。 これはまちがないない。
「眠すぎて死んだ」人というのは、最終的には眠ったことになるのだろうか?
で、そもそも米国版からしてダメなのに、日本語版はそれをクソまじめに 翻訳してるもんだからそれに輪をかけてダメになっている。ZDNet > CNET > Wired って感じ。 「東スポ的」なぶんだけ Wired のほうがまだおもしろいかもしれない、とさえ思う。 日本ではほかに日経 ITPro とか Impress Watch があるが、さいきん日本の記事は ほとんど読んでないので知らない。だいたいさあ、日本独自の記事で技術的に新しいものなんて 携帯電話とノートパソコンの紹介ぐらいしかないじゃん。あんまり読む必要ないよね…。 翻訳記事がなければああいうサイトのほとんどはやっていけないよ。 といって、日本じゃ草の根的なニュースサイトも皆無だし (スラッシュトッド日本? ふん (鼻で笑う音))。 まあ、そういう需要がかの国には全然ないのかもしれない。大衆をコントロールするには もってこいの環境だもんねあ。
ところで今日聞いた話によると、 MIT の PhD を出ても使えないヤツは使えないらしいので、安心しよっと。 ヒトの「使える度」が学歴で判断できてたまりますかっての。 たいていの人は、小学校あたりでもう決まっちゃうんじゃないかね、アレが。
ふ〜ん。
なんとなく作ってみたもの。とくに意味はない。 おそろしく軽薄な感じがする。
たぶん「あなたが」と「あなたがた」の打ちまちがいが両方入っているのだろう。
ちょっと出かけたつもりが 1時間も散歩してしまった。 やはり夜に出歩くのはなにかと神経使うな。 日本って世界で一番街灯で電力消費してると思うよ。 田舎もふくめて。
下町といえばナポレオン、かと思っていたのだが…。
ところでこれから恥ずかしい告白をいたします。
いままでわたくしはずっと「奇しくも」のことを、「きしくも」と読んでおりました。
用意するもの:
手順:
ここで重要なのは、墓から仏壇まで火をずっと絶やさないことである。 火がご先祖をお招きする「目印」だからだ。 で、16日の送り盆のときには、これとは逆のステップをくり返してご先祖をお墓までお戻しする。 だから樺の皮は合計 4枚必要なわけだ。 この儀式でじつに楽しいのは、ご先祖の転送プロトコルがきちんと定められていることである。 つまり「樺を焚く」という行為が「転送開始」「転送終了」の合図になっている。 まあ FTP でいうところの PORT コマンドみたいなもんだな。 これを勝手に STP (Spirit Transfer Protocol) と名づけることにしよう。 誰が最初に考え出したのか知らないが、そいつは計算機科学の素質があった。えらい。 しかし提灯の火が途中で消えた場合はどうなるんだろう? ロストするのか? 本来の意義からすると、ご先祖を仏壇に移したあとはずっとローソクの火を 絶やしてはいけないのかもしれないが、それはさすがに無理なのでうちではさっさと消している (まあ、このへんはいー加減なのだ)。ところで、ご先祖が家にいるのは一年でこの時期だけなのだが、 彼らがいないときには仏壇の役割は一体どうなってんだろう? おそらく墓場との通信機の役割を 果たしているのではないかと思われるが、まあいいや。この手のやつはあまり深く考えると 必ずボロが出るので、オレとしてはこの儀式がただ楽しければいいのだ。
ってなに??
いやー、オレ (と春山さん) ってエラい!
と思ったね。よくこんなに書いたよ。頑張ったよ。 これはどういうワケなのだろうか? 昔の仕事がよく見えるということは、 今のほうがバカになったということじゃないのだろうか??
ぬっくぬっく。 (レイボウが激寒いのでトレーナーを着ま舌)
CD-RW の中心が光速 (c) で開店しているとすると、 その周縁の速度は CD の半径を 8センチとして 8×32 = 256c で回転していることになってしまう! 特殊早退主義によりこの現象は物理的に不可能らしいので、したがって 32倍速の CD-RW を拘束で回転させることは 出来ない。QED.
と思って新潟日報のペエじを見てみると、あれまあ。 こんなことが起こっていたとはまったく知らなかった。 オレはそのころ旅行中だったからね。 新潟というのは北信の人間にとって無視できないところである。 なぜなら奴らのとこには長野県民が憧れてやまない海があるからだ。 にもかかわらず、かれらの対・新潟感情はアンビバレントなもので、 どういうわけか新潟は貧乏くさい所として目のカタキにされることが多い。 みんな「けっ、新潟のくせに!」と思っているのだ。実際には某政治家のおかげで 新潟は道路も長野よりぜんぜんいいのだが (しかしオリンピックでこの状況は変わったかもしれない。 むかし県境にいくと急に道のアスファルトの色が変わり、沿道に「ようこそ・道のいい新潟県へ」という 看板が立っていたのだが、あの看板まだあるのかなあ)。 しかしウチの家系はもともと新潟出身らしく、先祖の墓はいまでも高田 (=上越) にある。 ショックだよ! オレの中に新潟の血が流れているなんて…。 長野県民はきわめて民族意識の高い県民だと言われるので、 いまに長野で民族浄化作戦が始まったら、オレはきっと収容所に入れられるのな。 (あ、でもその前にあのヤスオカ村のヤスオをさっさと追い出せよ)
以上です。
毎度のことながら、彼のエッセイはなんであんなにありがたがられるのか謎である。 slashdot でも「very interesting read」とかいわれてるし。どこがあ? って感じなのだが、 やはりポモっぽいところに人は惹かれるのか。基本的にこのおっさんは 抽象的なことしか言わず、いつも曖昧な結論で終わらせられるようなテーマを選んでいる。 じつにうまい。こういうエセ知性にコロっとだまされるのが多いのは、西洋人の悪い部分だと思う (断 定) し、そういう意味ではわりとタチの悪い煽り屋だ。 そしてもちろん彼の人気のヒミツはあの小さいフォントにあるにちがいない、と考える。
いや、まあ。20% ぐらいは。
もっとも、オレは Lynx 使ってるから文字の大きさは関係ないのだ。
ところで毎日とくにネタを探してるわけでもないのに、 なんでこんなに書いちゃうんだろうなあ。おかしい。
緑茶を入れるでしょう、緑茶…。
その中に浮いてきた茶柱があったら、それを箸でとりだして前歯で噛みきるのな。
茶柱はお茶を淹れたあとでもまだ固いから、噛み切るときにポキっという感覚がある。
その食感がなんともいえずにイイ!
でもそのままだといずれ吐き出さなきゃいけないので
(茶柱は短いから 2〜3回しか噛めない)、めんどくさいからそのまま飲んじゃう。
これが「茶柱を食べる病気」だ。
(類似品で「お茶っ葉を煎れずにそのままバリバリ食う」病気というのもある)
なにこれ?
gnuplot> set noborder (枠を非表示) gnuplot> set noxtics (X座標軸を非表示) gnuplot> set noytics (Y座標軸を非表示) gnuplot> set nolabel (座標軸の名前を非表示) gnuplot> set nokey (凡例を非表示) gnuplot> plot [-3:3] exp(-x**2) with lines lw 2
偽問、擬問。
そうぬんです。
「すべての人がプログラミングできるようにする (それもお遊びレベルではない、 日常的に使うソフトウエアを自分でいじれるようになる)」というのは、 ぺるりん先生もまえに同じことを授業で話していたが、彼も Python が現時点では いちばん理想に近いといっていた。Alice Project のこともあるし。 やっぱそういう遠大なビジョンをもっている人はエライよな。 なぜなら、そういった計画は将来、本当に重要なものになるだろうし (そうでなければ世の中は非常に暗いものになる)、しかもそれを実現するのには 数十年あるいは数百年というレベルの長い長い時間がかかりそうだからである。 そして、そういう活動をしている人がほとんど米国にばっかりいるというのは (Guido のこの研究計画書も DARPA にあてたものだ)、なんだか心配だ。
ということで、これでますます選民思想が強化されました。 Ruby なんかと一緒にされちゃ困るね。(なにがどう困るのだかは知らない)
google://スットコ/ (2,270件)
google://ストッコ/ (411件)
か????
google://ビジネッシブ (bussinessive)/
ていうか、そもそもそんじょそこらの web サイトの使いにくさには もういい加減うんざりしてるんだから、いまさらその手の 「Web アプリフレームワーク」で使えないサイト (たとえば python.jp とか) を 簡単に大量生産されても迷惑なだけだ。そのことをわかってる人が どれだけいるのだか。(オレはわかってない、当然) まあ本家 python.org も全然使いやすくはないので、これはべつに zope のせいではない。
まず、ツリー構造を定義するクラスを作成します。
このオブジェクトはノードを入れ子状に含むことができ、 そのノードからなる部分木のすべての葉をフラットなリストにして 返す関数class node: def __init__(self, *args): self.c = args return def flatten(self, r=[]): for x in self.c: if isinstance(x, node): x.flatten(r) else: r.append(x) return r
flatten
(非破壊的) をもっています。
で、こんなようなのを定義すると。
こうしてtree = node(1, node(node(2, node(3, 4)), 5))
tree.flatten()
を呼びだせば、
フラットな葉のリストが返されるはずです。ところが…
つうことが起こるわけです。 ということでメソッドのデフォルト引数はちゃんと 初期化されていないことがあるわけですが、 これはそういう仕様なんだろーか?>>> print tree.flatten() [1, 2, 3, 4, 5] # 正しい。 >>> print tree.c[1].flatten() [1, 2, 3, 4, 5, 2, 3, 4, 5] # まちがい。 [2,3,4,5] であるべき >>> print tree.c[1].flatten([]) [2, 3, 4, 5] # 引数 r をちゃんと与えると正しくなる。
(追記: そういう仕様らしい。なおこれはメソッドに限ったことではなく、 関数のデフォルト引数は定義時に 1度きりしか評価されないので、mutable なものを デフォルト引数にしてはいけないというご指摘をある方からいただきました。 お恥ずかしいことで。言われてみればなるほどという気がする。 しかし前にいちどこの手の関数でうまくいったことがあったような気がするのだが、 ありゃあ気のせいか…)
なんつう不公平さよ! 許しがたい! これは英語でなくても、欧米諸国の言語でもあまり変わらない。 エンコーディングの問題がやや複雑になるくらいだが、それだって基本的に1文字は 1バイトですむ 程度の言語がほとんどなんだから、たいした問題じゃない。インドですら大した 問題は起こらないかもしれない (ISCII を使えばよい)。というか、ハングルなら 全部 1バイトに収まるんじゃないか?? 無理か。
From: Fyodor Date: Aug 11 2004 注意。新しくリリースされた Windows SP2 では Nmap の機能のほとんどは 使えなくなる。なぜかって? Microsoft が意図的にこれを使えなくしたからさ! あるユーザが Nmap が動かないので MS に問い合わせたところ、その回答というのが: "SP2 では RAWソケットで TCP を送信する機能はサポートされなくなりました。 さまざまなアプリケーションを調査した結果、XP でこの機能を使うのは 攻撃用ツールを書く人々だけだと判明したからです。" なぜ彼らが Nmap を「攻撃用ツール」とみなしたのかわからないがね、 彼らは自分たちのページでこの使用を推奨してるっていうのに! まったく。 SP2 を削除すればこの機能は元に戻り、Nmap は使えるようになる。 SP2 ではセキュリティ上の歓迎される改善をいくつか含んではいるが、 Nmap と関係ない問題も数多く見つかっているね。 (以下略)
ところで Fyodor というのはドストエフスキーのファンだからこういう名前にしたらしいが、 いつのまにかこの名前で検索すると自分のページのほうがドストエフスキーよりも上に来てしまうようになって 恥ずかしいそうだ。
(追記: その後 ML に流れてた情報によると「SOCK_RAW を廃止せよ!」っていう主張の人もいて、 たとえばこことか、 それはそれで一理あるかもしれない。思うに、デフォルトで使える状態だと踏み台にされたときに あちこち攻撃しまくってアレだから、簡単には使えなくしたほうがいいのかもしれない)
(さらに追記: …と思ってたら、この人はまた 別の人に山師だと批判されている。 泥沼。いわく「セキュリティ上の問題はコードで解決すべきであって、マーケティングで解決すべきではない」のだ。 たしかにこっちのほうがまっとうな考え方だな。これは 「相手が知らないのをセキュリティ上のよりどころとしてはならない」って原則に似てる。 どのみち Unix 使えば攻撃はされるんだから、MS は SOCK_RAW を廃止する暇があったらさっさと侵入されないようにしろっての。 まあ、それが無理だからこうやってお茶をにごしてるんだろうが)
朝もいいぞ なぜか
でもお昼から午後にかけてはだめなのだ。
いまも頭はボケっとしているがコードは書けるという脳味噌をしている。
なにかにとりつかれる時間が必要なのだろうか。
今日は何度か夕立ちってたので、帰ってきたらベランダに欲しておいた タオルがぐじょぐじょのダレダレになっていた。憤概。さいきん、 気温ばかり気にしていて天気の欄を見るのを忘れてた。
>>> def fungaa(): ... print "fungaa!" ... return 123 ... def fn(x=fungaa()): ... print x ... return ... fungaa! >>> fn(1) 1 >>> fn() 123 >>>