この花瓶はワイヤレスなので、電源コードは必要ないんです。
食料品の買い出しにでかけて、たまごドーフを買うべきか真剣に悩む。 30秒ぐらい悩む。
今日は一日 ACL と OpenMCL の挙動の違いでブーたれていた。 C のライブラリを Lisp から呼び出して使っているのだが、その部分のインターフェイスは 実装依存で文法も違うのね。それで、実装ごとの外部関数呼び出しの差異を吸収するために UFFI とゆーパッケージがあるんだけど、それでも ACL と OpenMCL では微妙に挙動が違う…。 くそ。 てくるで、さっき Slime がおかしくなって、今回はついでにEmacs もパニックしやがった…。 これってあんまり経験ないんだけど、Emacs がおかしくなると「Auto save? (y/n)」とか 「Core dump? (y/n)」とか聞いてくるよ。
よくある罠: Lisp では 0 は真である。よくある罠だよね。
やっぱ Python はデバッグしやすいわあ。しあわせプログラミング。
それにしても、家に帰ってきてゆっくり落着ける時間になると たいていいつも 0時とか 1時とかになるのはどうしたもんなか。 そしてそのうちすぐに眠くなってしまう。これでは個人プロジェクトが進まないではないか。
このリンクは Google で「ラジむか」を Feeling Lucky する。 もしあなたが幸運ならば、このリンクはラジむかへ行くであろう。 でも運河悪いと tabesugi.net に戻って来ちゃうこともあるので、 更新されてない場合にはそのほうが都合がよい。
たぶん Google には「Google 検索にリンクしてる奴は悪」という隠された規則があるだろう。 したがってこのサイトの pageranky (チェコ語風) はかなり悪そうだが そんなことはどうでもいい。
オレがバイトでする仕事はいつもプラットフォームが Mac ばかりなのは 何かやはりオレの中のマイノリティの血がそうさせるのだろうか。 高校のころすでに趣味で THINK C でコーディングしていたが (当時はイベント駆動のプログラミングに慣れておらず、日本語の書籍もなくて苦労しました)、 大学に入ってバイトで使わされたのは忘れもしない 4th Dimension であった。 Mac を使ってる人なら知ってるだろうが、ようするに Access の Mac 版みたいなやつ。 当時、漢字Talk6 で動くデータベースソフトといえば FileMaker が定番だったが、 4D はスクリプト言語を内蔵していて、インタフェイスを設計することができた。 しかしこれがひどいことひどいこと。 なんか Pascal と HyperTalk をたして log をとったような言語なんだけど、バグだらけ (新山が Python や Lisp のような「まともな、おぼっちゃん用スクリプト言語」しか 扱ったことがないと思ったら大間違いである!)。 おまけにスクリプトを開いたり編集したり何をするにも マウスでクリックしなきゃなんないという、最悪な設計。 いくら仕事とはいえこんなバカなことがあるか、 と思ったのは現在の GUI 観に多少なりとも影響している。 そしていまは OpenMCL だ。 言語としてはずっとましだが、マイナーであることに変わりはない。 ちなみにいうと、このインターンには Lisp 集中特訓コース も おまけについてくる (いま勝手にそう考えた)。Lisp しか信じない導師について ひたすら Lisp、Lisp。しかも向こうはオレが書いたコードをいちいち 読んでコメントをくれるという親切さ (これはマジで感謝しているのです、 ふつうはこんなに丁寧に指導してくんないと思う)。オレは幸運だ、 と思うが、同時にこれってすごく変。
↑もちろん、そう。
そのあと腹がへったので、ちゃいなタウンへいって餃子。 餃子屋はやはり暑かった。今日はどういうわけか、 店の中のふだんなら客が座る通路のところにでっかい冷蔵庫が デンと鎮座していた。だが店はそんなことはおかまいなしで営業中。 いつものおばさん「はう、まにい?」。ここはわりと有名なところらしく 白人客もちょくちょく来ているのだが、不衛生っぽいのにそんなに味がいいんだろうか。 きょうは白人の父と娘づれがきて、父親が「five dumplings!」というと ガキんちょのほうは「ふぁいう゛、じゃんぴん!」と真似る、という光景がみられた。 10個くったらハラいっぱ。そのあとは床屋へいく。ほんとぅーは、 Chambers St. に "HAIR CUT $3.99" と書いてあるあやしい床屋があったのだが、 中をのぞいてみたら黒人のいかついブラザーが髪を切ってたので、 遠慮しとく。きょうの床屋はいきなり洗髪から始まった。いつも新山は 洗髪は断っているのだが、しょうがない。なんか、今までに行った NY の 床屋のなかで一番サービスがよかったのだが、それでも $9 だった。 あいかわらず意味が通じてんだかよくわかんない会話のあと、 すんげー短い髪型にカットされる。まあ、中国人床屋はカケですから。
そういや、きょうはひとつすごい発見をしたんだよ。 Mott St. にハローキティ専門店があるのだ。 まあ、これは、ある人は要チェックだね…
いつも思うのだが、この世はいくら汲めども尽きぬ疑問の宝庫だ。 多くの疑問はその存在にすら気づかれずに消えていく。
かうもの: こーひー豆、水、テッシ、ハム類
↑もちろん、うそ。
「ひどいもんだよ」 と De Raadt 氏はいう。 「みんなこれを使っているんだが、どれほどひどいかわかってないんだ。 それに Linux の人間は一歩引いて『これはゴミだから直さにゃいかん』とは 言わずに、それにひっついて余計なものを加えてる」さいきん、Theo 様の露出が多いが、これはよくないことだ。 彼は黙ってコードを書いてるほうがいいと思う。 Slashdot では「彼は歩く PR disaster だ」とまで言われてるし。 それにしても Forbes ってのは「重役向けの『マリ・クレール』みたいなもん」らしいので、 こんな記事を真に受ける人はそういないと思うけど。
今日の google: google://here/
Adobe はきっと各国語で「ここ」のキーワードを買ってるんだね…。
どうでもいいが、「悪の企業」として知られる Microsoft が今ではなんだか すっかり社会になじんでしまい、まるで新興宗教がなし崩し的に 定着してしまう過程をみているようだ。
これは当然、x か y に副作用があったときに (たとえば#define max(x,y) ((y)<(x)? (x) : (y))
max(x++, y++)
とするなど)
おかしな結果になってしまう。もちろん Lisp でも
このように書けるが、まず普通はこう書かないのである。 なぜなら Lisp では let を使って(defmacro max (x y) `(if (< ,y ,x) ,x ,y)))
のようにできるからだ。(一時変数名を(defmacro max (x y) (let ((x1 (gensym)) (y1 (gensym))) `(let ((,x1 ,x) (,y1 ,y)) (if (< ,y1 ,x1) ,x1 ,y1))))
(gensym)
でつくるのは
Lisp のマクロが hygienic ではないための処置だが、実際には let のスコープは lexical だから
なくてもかまわないと思う、x
と y
の中で変数 x1
や y1
を
使っていても let の中では見えない)。
こうすると x と y の副作用が問題になることはないし、
途中の変数束縛は完全に外から隠されている。
この手のカプセル化は重要で、Lisp ではマクロがマクロを呼び、それがまた中でマクロ展開して…
といったことがよくあるので、副作用を完全に隠蔽できないとたちまちバグだらけのコードになってしまう
(そもそも、setf
もマクロだしな)。だからマクロが危険だ、というのは
Lisp ではあんまりあてはまらないことがわかった。
しかしそれでもマクロを増やしすぎるのはなんか不安だ…。
この感覚がどこからくるのかわかるのはいつのことやら。
たいていの場合、新山はまず「直感 (英語で言うところの gut feelings か?)」 が先にあって、 それを言語で説明できずに悩む、ということが多い。ほどんとの場合、直感は正しいのだが、 ただ「直感的にこう思う」といっただけでは人は納得してくれないので、あれこれ異なる角度から 説明を試みることになる。もちろん説明の方法にもプログラミングの方法と同じくらいいろんな やり方があるが、最適解は少ないか非常に見つけるのがむずかしい。。。
結局、オレはまだモラトリアムなのだと思う。 自分がほんとうに研究者に向いているかどうか、いまだに悩んでいる。 ただ、ひとつの問題意識があって、「(自然言語あるいは人工知能の) 研究者になるのであれば、この問題にマジメに向きあわなければ絶対にウソだ」 というのがあるんだよ。ただそれをどれだけマジメに取り組めるものかどうか、 まだ自信がない。
てくるで、ぜーんぜん関係ないが、おとついのミーティングで Matt から 聞いた話によると、perl6 の実装を Haskell で書いたやつがいるそうだ。 まあ、Matt のいう話だからどこまで信憑性があるのかわからんが、 ghc で C にコンパイルされるので、そこそこ速いんだそうな。 しかも、「Haskellの演習として作った」ものらしいが、世の中には スゲエやつがいるもんだ。
原因はいろいろ考えられるのだが、たぶん連日の暑さと冷房づけがたたったのだと思われる。 いまはすこしマシになっているけど、昼間はひどかった。新山にとってカゼで一番つらいのが 頭痛なのだが、風邪の頭痛はふつうの薬では直らないことが多いのである (医者に行けばボルタレンなどの超強力な (ヤバい) 鎮痛剤を処方してもらえるのだが、そんな気力なし)。 で、さらに頭痛があまりにひどいと吐き気がしてきてモノが食えないし、 ろくに歩けない。ここ数年、こういうひどい風邪にはならなかったのだが、油断していた。 で、冷房もつけずに窓をあけてずっと寝ていたのだけど、 今日から急にすずしくなって冷房がいらなかったので、本当にたすかった。 明日までにはちゃんと治ってるといいなあ。
つうか、寝坊したのに寝不足です。もうカンベンしてくれと
今日の Google: google://ここ/
どうでもいいが、NEC にはまだ 「文豪」 のページがある。さすが。 シャープには「書院」のことなんかもう載ってないのに。
中国人ならきっとみんな毛沢東語録を知っているのだろう (偏見)。 そういえば、日本人は高校のころに漢文を勉強させられる、ということを彼らに 話すと、ホントかよ! と言われる。だから、「国破山河有 城春草木深 …」 と書いてみせると驚く。新山が覚えている漢詩はたぶんこれだけだ。
google://エピ業念/ (0件)
ところで電車の中でアクビを連発していて考えたのだが、
「アクビ速撃ちガンマン」
ルール:
s.t. $3 \le N$
)。
サン・ルイよりポール・エティエンヌに告ぐ、郵便機からの連絡ありや?
string->symbol
とかいう関数で一発でできるのに、
CL では同等とみなれる make-symbol
を使うと、
「どのパッケージにも属さないシンボル (#:
で始まるやつ)」が
できてしまうのだ。結局、こういうときには intern
を
使うべきだということがわかったが、なんか納得いかない。
といって Scheme の場合、今度はパッケージシステムが完全に実装依存なので、
もっと終わってる。名前空間の扱いを RnRS に入れなかったのは大きなミスであった。
それに、SRFI でもこのことはまだ定義されてない (みたい)。CL のパッケージにしても、
ファイルシステムとパッケージが直接結びついていないので (CL 信者にいわせれば、
これは「すべての実装がファイルシステムを持っているとは限らないから」ということだが)、
asdf のようなムダな機構が必要になる。Python でライブラリがあんだけ増えたのは、
なじみやすいパッケージシステムが最初からあった、ということはある。
くりかえすが、新山の印象では「Lisp は頭がいい人のためのシステム」ということだ。 必要な関数はほとんどそろっているので、一貫してない関数名やらヘンテコな パッケージシステムやらをきちんと暗記して使える人は Lisp を使えばいい。 maa, ある人のマーケティング用語を使えば バッドノウハウの塊ってとこだ。いっぽう Scheme は「頭がいいうえに、 本題と関係ないことに無駄な時間を費やすのが好きな人のためのシステム」である。 どっちもクソくらえ。
追記: 「クソくらえ」などといった表現は、ぶっきらぼうに言ったほうが下品さが少ない。 これを丁寧なお嬢様言葉などに直訳するとトンでもない表現になる。
米、味噌、ナガネギ
米、味噌、ガナネギ
米、味噌、ガナギネ
大学出た時点で「うげゃーこら27℃はいっとるな」と思ったら、もっとだった。 もう死ぬ。帰りに日本食スーパーへ寄って、「買うものなんだったっけ? 味噌と米と、あとナガ…ナガギネ? ナギネガ??」さいごのいっこが思い出せなかった。 (ウソですよ)
てくるで、今日は午前中ヒマだった…わけでもなかったが、やるきな病だったので、 ナントナく 7階オフィスの部屋の入り口に貼る表札をつくってみた。
こんなの。
使用フォントはヒラギノ明朝と American Typewriter だる。
No, you doesn't, didn't does?
きょうは行きの電車で本を一冊読み、
帰りの電車で本を一冊読んだこと以外には何にもできなかった。
なぜなら、いま、ねむい。
で、その jwz いわく:
Dear Slashdot: please don't post about this. Screw you guys.(やあ、Slashdot のみんな: この件についてポストするんじゃねーぞ。氏ねよおめーら)
…と思うが、まだ貧乏学生なんだからしょうがない。 そんでも、日本にいたころよりはリッチになったと思う --- いちおう、バス・トイレ・キッチンつき電話つきの部屋に住んでいるし (学部・修士時代は、このうちのどれもなかった)。 治安はそんなによくないケド…。
貧乏がカッコいいと思っているわけでは決してない (でも「清貧」はカッコいいと思っている)。
新山の担当はおもに文字・印刷関連なので、メインの仕事は TrueType フォントや PDF の扱いである。しかし自分で言うのもなんだけど、 こんなに訳わからん仕事ができる学生はそんなにいないと思う。 それでも自分としてはこの仕事が気に入っている。なぜなら 大学とも研究ともまったく関係ないところから自力で見つけてきたからだ。 ほかの PhD 学生はみんな I社 とか M車 とか G者 など有名企業の研究所に行くのだが、 新山は提案書でごたごたやってるうちにほとんどの受け付け締切を逃したので、 LispNYC の飲み会で「だれかインターンシップいりませんか?」といってあちこち尋いてまわったら、 「お前、何ができるんだ?」「PDF や TrueType、3DCG についてはだいたい理解しています。 あと、オマケとして自然言語処理もできます。」 といったら仕事もらえた。芸は身を助ける。といっても新山は ASP.net とか SQLserver についてはまったくなにも知らないので、 そっち方面の求人 (大量にある) にはことごとく落ちるだろうけど。しかし、ふつう PhD ともなれば 自分の専門分野にある程度関連したことをやるのがふつうで、この仕事は自然言語処理と まっっったく関係ないので、Ralph やセキネさんにはだいぶ反対された (学生ビザの新山は米国では無断で仕事できないので、インターンとして働くためには 学科と教授から許可が必要なのである)。 そんな「あやしい仕事」をやるくらいなら、夏期 RA として雇えるから 研究しろ、というのだ。しかし相手はそこそこ有名な Lisp ハッカーであり、習うべきことは多い。 Lisp で仕事できる機会なんてそんなにないと思う。超小規模な個人企業なので、 打ち合わせはアップタウンの喫茶店などである。基本的に、「出社義務」というのが ないので大学にいたままリモートで仕事できるのはいいんだけど、 新山としては「会社っぽい雰囲気」も経験してみなければならないと思う。 来年はもっと早く応募しよう… (注意: 早く応募したからといって採用されるとは限りませじ)
どうでもいいけど開発環境として Slime ってのを 使っているのだが、こりゃもうヤバい。バケモノ的に便利。インテリセンスなどの機能は Python の IDLE などにもあるが、こっちは Emacs 上で動くのでさらに便利だ (IDLE がいくら便利でも新山はあれを使う気になれない、端末上で動かなければ意味がない)。
ちなみにへれんは今、自然言語処理 (にかぎらず、CS 関連の分野全体) でおそらく世界最高レベルの 某研究所でインターンとして働いてるが、彼女からその実態を聞いたらあそこには行きたくなくなった。 やっぱりあんまし企業の名前とかにこだわらず、自分の感覚をアテにすべきだとあらためて思う。 まあ、エリートっぽい雰囲気が嫌いというのもあるけど。
外はドシャ降りです。
てくるで、Google Adsense の日本の対応はひどい、というページの存在を知りました。 これ、すげーな。さすが Do No Evil! の Google だけのことはあるね! まあ、正直にいって、Google はぜったい日本 (と日本市場) をナメてると思う。あのアメリカンな雰囲気からして、 しょせんヤツらの感心はアメリカ (と、せいぜい欧州) にしかないみたいだ。 ところが新山は最近、米国の Google も十分インテリヤクザっぽいと思うようになった。 だいたいリクルートパーティーのとき Brin を真近で見て、 コイツはどう見ても信用できなそうな奴だ、という雰囲気はあったのである (かれがまだ若いせいもあるけど)。 ついでにいうと、 この会社に修飾した某氏もこないだ会ったときになんとなくこの手のヤクザっぽい雰囲気がにじみ出ていた。 さらにいうと、ここでアドバイザとして働いている某教授にもそういう雰囲気がある。 以下自粛。まあ、偏見ですけどね。 Google が金まみれになるにつれて、この「Do No Evil」は揶揄する言葉としてしか 使われなくなっていくだろうが、そんなことはどうでもよくって、新山がいいたいのは、 はやく「Google・天気」をだせとゆうことだ。とくに Google Maps とくっつけてくれないかな。 オーバーレイで雲をくっつけたままスクロールできたらサイコー。 衛星画像はあるんだから技術的には可能はなず。Yahoo! のは使いにくくてしょうがないよ。
またドシャ降りになりました。雷ごろごろ。これじゃーオモテに出れんじゃないか。 一日じゅうこんな文章を書いていたら日記になってしまうよ。