2007-08-18
■[雑談]LH710便(FRA-NRT)の空席が異常に少ない件
マニアック極まりない話ですが、いつもルフトハンザ航空710便(フランクフルト発、成田着)の空席が極端に少なくて困ります。たとえば9月の土曜はすべて、割引運賃はおろか、普通運賃すら完全に0です(ファーストクラス以外)。予約クラスごとの空席は、たとえばhttp://flyaow.com/classamex.htm等から調べられます。
しかも、いつも出発日の数日前になると、かなりの空席が発生します。ある程度は普通運賃のキャンセルやマイレージ上級会員用の特別枠など、どこの航空会社やルートでもあることだと思いますが、これはちょっと異常ではないでしょうか…。ひょっとして何かの不具合か、どこかの旅行代理店の仕業ではないかと疑ってしまいます。予約窓口の人に聞いてもわかるはずがなく、謎は深まります。
なんでそんなことにこだわるかというと、ヨーロッパ出張のたびに、(クレジットカードなどでためたマイルによる)アップグレードが通るかどうかに関わるからです。:-) そうでもしないと現在の生活では体が持ちません…(笑)
2007-08-15
■末尾再帰
一部で微妙に:-)盛り上がっている件。単に「帰ってこなくて良い関数呼び出しをジャンプにする(ので、再帰呼び出しはループになる)」こと(いわゆる末尾呼び出し/末尾再帰)と、「メモリ消費が定数オーダーになる」ことを混同しているだけかと。
追記:いつも他人のふんどしだけでは恐縮なので情報提供(といっても、これも他人の研究ですが):CPS変換をすれば、すべての関数呼び出しは末尾呼び出しになります。が、(当然ながら)すべてのプログラムが定数メモリで動作するわけではなく、継続を表現するクロージャがヒープやスタックに確保されるだけで、メモリ消費は減少しません。
しかしながら、CPS変換をすると、末尾呼び出し最適化も簡単になります。「関数呼び出しf(x)の返り値yを継続kに渡す」というCPS項はf x (λy. k y)のようになりますが、λy. k yをη簡約するとkになるので、先のf x (λy. k y)はf x kとなり、末尾呼び出し最適化と同様にメモリ使用量が減少します。
2007-08-10
■[雑談]「さん」づけ
プロフィールにも書いてある件*1。私の出身学科では(教員同士では現研究室もですが)大学内部ですら、助手はもちろん、助教授や教授の「先生」もデフォルトで「さん」だったので、どうも「大学の外でも先生と呼ばれることを要求する人」の実感が湧きません。(留学居候していたときは当然のようにファーストネームでした。) 「さん」は東大ISだけだったのか、計算機科学分野のハッカー文化なのか、はたまた理学部(理系?)全体のデフォルトなのか…?
■SIGPLANとPLDI
ICFPは学会(組織ではなく会議のほう)の名前であって、ICFP = プログラミングコンテストではない…というfrequently asked tsukkomiはさておき、同じような話で。
SIGPLANはACM内部の組織の名前で、会誌の名前はSIGPLAN Notices、学会はPLDIなりICFPなりいろいろ、と思っていたのですが、合っているでしょうか?
ACM SIGPLAN Conference on Programming Language Design and Implementation
(ACM SIGPLANによる、プログラミング言語の設計と実装に関する会議)
を見て「SIGPLANという会議」だと思ってしまう人が少なくないだけかもしれませんが、「PLDIのことをSIGPLANともいう」と陽に述べている説を見たことがあり、そういう呼び方も広まっているのか、単なる勘違いなのか、多少自信がありません…
■[雑談]三段ベッドエコノミークラス
http://oglobo.globo.com/fotos/2007/08/08/08_MHG_lufthansa.jpg
冗談かと思ったが、ルフトハンザから本当にアンケートが来たらしい。これは迷う…
*1:見出しは変えてしまいましたが、"sumii"のところをクリックすると詳細が表示されます。
2007-08-09
■[育児]えいごであそぼ
http://www.nhk.or.jp/kids/program/eigo.html
のダンスの歌詞は、なんで"Thursday"と"Thriller"とか、"Friday"と"Fly"とか、(私が)発音できない単語ばかり連呼しますか?
■続・本当に怖い「プログラマ」の話題
http://d.hatena.ne.jp/sumii/20070808/p4
他人の文句ばかりではいけないので平衡のために明記しておくと、(広義の)「プログラミング」の教育では、非常に率直にいって、現在の大学も全然駄目だと思います。もちろん、一部の非常に優秀な学生さんや、そういう学生さんのほうがデフォルトであるような大学はまったくOKなのですが、地方国立大学や普通の私立大学はどこも四苦八苦しているのではないでしょうか。当然ながら私を含む教員の努力不足・能力不足もあると思いますが、「学部と大学院の授業」「大学と研究室の組織管理・運営」「研究室内の個々の学生さんとの共同研究」「自分の研究」を、同一人物が同時並行でやっていることによる人手不足・時間不足も大きいように思われます。プロジェクト体験など、企業のほうが得意そうなテーマの授業は連携する、という方向で努力はなされていますが、もっと加速したいところです…。
■[雑談]添付テキストの表示形態
GmailやMewで、論文のTeXソースコードなどをテキストファイルとして添付すると、返信で添付ファイルの内容まで全文引用されていることが(わりとよく)あるのですが、そういうメーラが多いんでしょうか?(追記:Gmail自体もそうらしい。)こちらは特に何も困らないので良いのですが、先方にとっては極端な長文が表示されて迷惑だったりして…
追記:とりあえずMewのほうで.emacsに
(setq mew-mime-content-disposition
'(("text" "attachment" t)
("image" "inline" t)
("message" "inline" nil)
("multipart" nil nil)
(t "attachment" t)))
などと書けば良いようです(対症療法なので、ちゃんとした解決かどうかは自信がありません…)。コメント感謝です。
2007-08-08
■ITpro連載 第13回 「表明」と「契約」による命令型プログラムの形式的検証
http://itpro.nikkeibp.co.jp/article/COLUMN/20070802/278931/?ST=develop
出ました。ホーア論理の話です。参考リンクにある京都賞受賞記念講演なども面白いかと思います。
記事にもある「形式的手法(数学的証明)によるプログラム検証」は、「バグがないことを保証する」みたいな言われ方をされますが(私もよくしてしまいますが)、「バグ」の意味が広範なために、「そんなことは不可能だ」という脊髄反射的な否定の原因になっている気もします。むしろ、「(有限の)テストケースによる抽出検査」と対比して、「(無限のテストケースも網羅できる)効率のよい全数検査」みたいな言い方をしたほうが通りやすい?
■フィボナッチ音楽
http://arton.no-ip.info/diary/20070808.html#p01
前にオープンキャンパスで某ロボットに「フィボナッチ踊り」をさせようと提案して却下されました。面白いと思うのですが、駄目でしょうか?(←駄目です)
ちなみに、今の高校数学のカリキュラムには三項間漸化式が含まれていないので、フィボナッチ数列を知らない学部学生さんが多いことを最近になって知りました。
http://www.mext.go.jp/b_menu/shuppan/sonota/990301d/990301e.htm
イの(ア)の漸化式については,二項間の関係式を扱う程度とする。
■"foo".equals(s)
http://d.hatena.ne.jp/lethevert/20070807/p3
この手の話は(特にJavaで)よく目にする or 耳にするのですが、そもそもequalsはバイナリメソッドの典型なので、いわゆるオブジェクト指向(特に実装の継承)と相容れない(二引数関数なのに、どちらに属するか決めなければいけない)のではないでしょうか。と我田引水メソッド。
■プログラミング
今までの数々の失敗に懲りず、また危険な話題に手を出します。
「プログラミング」といったときに、バリバリの「企業エンジニア」と、バリバリの「個人ハッカー」では、指すものが全く違うような気がします(このエントリでいう「企業エンジニア」「個人ハッカー」という言葉は比喩で、厳密な分類ではありません*1)。「企業エンジニア」のいう「プログラミング」(=コーディング)は、「下流工程」の最たるもので、極言すれば「日本語の仕様書をプログラミング言語に翻訳するだけの作業」と思っているのではないでしょうか。それに対して、「個人ハッカー」(研究者等も含む)のいう「プログラミング」は、基礎理論からアルゴリズム、問題の分析や要件の定義、システム全体の設計、果てはドキュメントやサポートに至るまで、とにかくソフトウェア開発のすべての要素を含んでいるのではないかと…
ちなみに自分のITpro連載は、上でいう「個人ハッカー」が主な読者だと思うので(見当が違っていたらすみません)、いわゆる形式的手法なども、OCamlなりCなり、狭義の「プログラミング言語」の文脈で紹介しています。が、「プログラミング言語理論」は仕様記述言語のような広義の「プログラミング言語」も主要な対象の一つです。(むしろ、そちらがメイン?)
*1:「企業エンジニア」=「企業プログラマ」、「個人ハッカー」=「個人プログラマ」ではなく、要するに「プログラミングはつまらないと言っている人」と「プログラミングは面白いと言っている人」の意です。コメントも参照。
2007-08-07
■本物のプログラマはHaskellを使う 第13回 スレッド安全なI/Oの排他制御を実現する
http://itpro.nikkeibp.co.jp/article/COLUMN/20070731/278680/?ST=develop
shelarcyさんのITpro連載。今回はSTM。
純粋関数型言語のほうが(並行な)状態の操作を簡単&安全に記述できる…と断定するのは危険かもしれませんが、HaskellでSTMが書きやすいのは確かで面白いと思います。Haskellによる高性能並行入出力処理の実現も参照。と知り合いの研究を宣伝しておく。
■プログラム解析ワークショップ@日本IBM東京基礎研究所
http://www.research.ibm.com/trl/projects/paworkshop/
日時: 8/30(木) 10:00-17:00 (昼食は社員食堂をご利用いただけます)
会場: 日本アイ・ビー・エム 東京基礎研究所 会議室
研究所について:http://www.trl.ibm.com/
アクセス:http://www.research.ibm.com/trl/lab/trlmap.htm
問合せ: trlpa@jp.ibm.com
申し込み: 所属、氏名(連名可)、発表希望の有無を記載の上、上記問合せメールアドレス へ参加希望のメールをお送り下さい。発表時間については、後ほどスケジュールを調整の上ご連絡します。
だそうです。
Cf.
このたびIBM Researchは、WALAと呼ばれるクロス・プラットフォームのプログラム解析ライブラリWALAをオープンソースとして公開致しました。
2007-08-06
■[雑談]レーザープリンタ
今話題のトナー粒子の肺への影響ですが、原論文をちらっと眺めてみました。プリンタの型番や新旧だけでなく、トナーの残量や新旧など条件が複雑で、何が安全で何が危険(かもしれない)か、まだよくわからないとのこと。となると、「マイクロファイントナー」なんて宣伝文句は、かえって悪印象で逆効果になったり…???
どうしても気になる人は、HEPAタイプという、普通の空気清浄機で除去できるようです(と考えて良いでしょうか?>詳しい方)。0.3ミクロンの粒子が99.97%以上除去される、という定義で、それ未満の粒子は、むしろブラウン運動するので除去しやすいとのこと。へーへーへー。
http://en.wikipedia.org/wiki/HEPA
The common assumption that a HEPA filter acts like a sieve where particles smaller than the largest opening can pass through is incorrect.
2007-08-04
■[雑談]5回ぐらい壁を越える話への反応へのコメントへの補足
http://d.hatena.ne.jp/m-hiyama/20070728/1185605819
の自分のコメントに今更の補足。
細かいことを抜きにして大まかに言うと、自分は「これ以上は仕事できない」と思ったことがありません。いつも「まだまだ仕事できるはずだけどやる気が出ないからやめる」か、「やる気は満々だが、いつの間にかディスプレイや論文の前で意識がなくなる」のどちらかでした(現在は「仕事をしたくても時間がない」状態ですが)。前者は自分の怠慢なのでさておき、後者は二重の意味で非常に問題です。
- 自分の限界を自覚していないために、約束したはずの仕事をきちんと処理できない(締め切りに遅れる、質が落ちる等)
- 無理な努力の結果が人事評価されることにより、不当競争が発生する
「努力のダンピング」は後者の問題ですが、前者の問題も無視できません。いや、本当にすみません…>皆様
ちなみに、「意識がなくなった」ときに自分がタイプしていた「もの」を後で見ると、わけのわからないことが書いてあって笑えます。