憂鬱な午後のひととき


1月31日_
vaddpdとvaesencのフォーマットの違いがよく分からない….
1月30日_
・また整骨院へ. やはり調整後の夜はじんじんして寝られない. 気持ち悪さもある. 気長に治さないといけないらしいがしんどいなあ.
・学会に行ってる間に同僚の秋元さんが2回目の父親産休に入った(父親産休+育休で休みます). ただただ凄いなあと思う.
1月29日_
>モナドの元ネタが知りたいだとかそういった理由でほかの数学の知識もあまりなしにいきなり圏論を勉強しようとしたけど分からなかった、という人はまず群論だとか代数学の基本を学ぶべきなんじゃないかなぁ
に対して群や環も知らないのに圏論を勉強するのはプログラムを知らない人がデザインパターンを勉強するようなものだと思うと書いた件の補足.

まず, 勉強の仕方や順序は人それぞれ. 私の場合は具体的なものから抽象的なものへいくという方針が性に合ってる気がする(自分の経験則). もちろんそうじゃない人もいるだろう. そうじゃない人にとやかくいうのは余計なお節介.

ただ, 群(もちろん圏論も)を知らない人がmonadやarrowのために圏を勉強して「圏論がわからん」と言ってるのを見ると, 群の定義と初歩的な例や共変の例を見せて, 圏はそれらを抽象的に扱う枠組みだからに先に具体例を知った方がええんじゃないのとアドバイスすることはある.

そういう人は大抵複数のプログラミング言語を勉強しているので, 上記のデザインパターンの喩えを言うとひとまず「何が足りないから分からないのか」となんとなく納得してもらえる. 「それは違うんちゃう」という人もいたけど, まあ単なる喩え, 私のイメージなので違う反応があってもそれはしかたない(だって「~と思う」という感想だし!).

そのあと, じゃあ群を少し勉強してみようかとなってもいいし, 単なるパターンだから公理論的に受け入れればいいと思って進めてもいいし, また別の方法もあるかもしれない. やっぱりそれは人それぞれ.

1月28日_
・>なるほど。辞書攻撃をクラウドでやったら早かった!ということですね。SHA-1 なんて関係ないじゃんw そのうち、SHA-1 が破れたとか言われる気がします。
最終セッションの発表内で「辞書攻撃ができるということはSHA-1は破られたという認識」と発言している方がいた. その認識だとパスワードが弱いとどんなハッシュも弱いことになるので, それは違うんじゃないかとコメントしたけど, 時間無かった中での発言なので私の聞き間違いなら申し訳ない.
・何人か方にペアリングの定義が完成したら読むよと言っていただいた. 頑張ってみよう. 定義を丁寧におっかけているところで何か新しいことを思いつけたらいいなと.
・終了. 会場が暑くもなく寒くもなく快適でとてもよかった. 結局4日間, ずっと会議と鉛筆と紙計算で終わった. 写真が早朝のランニングで撮った節分?ぐらいしかない. 帰りの新幹線は10分遅れぐらいで無事ついた.
1月27日_
・空気が乾燥していたので喉が渇いて朝5時に目が覚める. せっかくなので暗いけど軽くランニングしてみる. 小倉駅を出発して, 道路が広いなとか, 日の出は東京よりどれぐらい遅いのだろう(調べたら約30分)とか思いつつしばらく走ってると前方に大きな駅のシルエット. 「すごいな, こんな大きな駅が近くに二つもあるのか」と思ったら小倉駅だった. どこかで道を間違えたらしい.
・小倉周辺の飲食店は殆ど喫煙可だった. フードコートもそうなのはびっくり. 吸ってる人が多くて困った. お土産コーナーも煙草臭い.
・発表中の「~させていただきます」の連発は余計で耳障りだと思う. 「~とします」, 「~です」で十分じゃなかろうか. 使うとしても最初ぐらいかなあ. あと, 最終スライドを謝辞にする場合は終わったら「まとめ」を表示しておく方が情報量が多くていいと思う.
1月26日_
休憩時間にいじってたペアリングのコードが異常終了. 原因を探したら開発版Xbyakでのみ発生するみたい. 会議が終わってから3時間ほど格闘したけどまだよう分からん. 何故かコンストラクタが呼ばれてないように見える. static変数の初期化順序のミスか, VC9のバグか(希望的責任転嫁).
1月25日_
・新幹線でSCIS2011に向かう. 岡山を超えたあたりから電車の揺れが酷くて字もかけない. 乗り物酔いはそんなにしないほうだけど, この揺れで本読むのは辛そうなので諦める. 後で聞いたらN700系なのでましなんだそうな. 時速300kmでトンネルを突っ走ってるとも聞いた.
・平行セッションが多くて時間も短いのでできるだけいろんな人に会うのを目的の一つにする.
・デモの準備というか接続確認. 最初復号に失敗して焦ったけど単にネットワークにつながってなかっただけだった. 割り当てられたipアドレスをちゃんと設定したら動いて一安心.
1月23日_
昨日の勉強会の途中から, 骨のずれの修正(?)をしてもらった付近がえらい熱くてじんじんして, 夜中も熱持って寝られんかった. 氷で冷やしてたら大分ましになったけど, なででたぐらいにしか感じなかったのにすごい影響があるもんだな.
1月22日_
・ここ何か月か首が曲がらなくて最近は痛くて寝不足もあったので整骨院に行ってみた. 肩こりではなく首の骨が少しずれてるのではないかとのこと. 少しずつ直すけどまずは毎日氷水で20分ほど冷やしてだって.
・直前までLLVM勉強会自然言語処理勉強会か迷って結局言語処理に行った. 前々職の後輩の方の発表もあった. とても面白かった. リアルタイムで音声認識のデモを見るとここまでできるんだと感心する. 結局はコーパス重要というあたり, 個人がお手軽に試せないのが残念.
1月18日_
XbyakをAVX対応させてみようとAVXの勉強始める. マニュアルごつい. 700ページ近くあるのか.
Xbyakのmake testで自宅サーバが突如死んだ. sshも返事しない. 家に帰ってログを見ても何も残ってない. というかファイルもぶっ飛んで一時期psすら動かない状態になっていた. 復旧はしたけど不気味だ.
1月16日_
渋谷のMARUZEN&ジュンク堂に初めて行った. とにかくでかい(でも梅田店の方が更に大きいのか. はあ). 今回はあまり時間がなかったのでざっと見ただけだけど, 今度はゆっくり選びに来よう. ただ, 渋谷の歩道のあの人の多さは見てるだけで疲れる.
1月14日_
NTTや東大がペアリングを使ったシステムのプロトコルの標準化をしようとしてるのだけど, そこで決められつつあるプロトコルにしたがって, タイムカプセル暗号を修正してる(もう6年も前になるのか…. 修正版は未公開). SCIS2011の技術展示でデモしにいかせてもらえることになったので(ありがたいことだ)興味あるかた是非.
とは言ってもいつやるのかまだ分かってない
1月13日_
・昼休み, 地球が丸いってほんまかいな, どうやって示す? という話をしていたら, shuyoさんからNHKの大科学実験という番組を教えてもらった. web上でもいくつか番組を見られる. おもろい. これはすごい.
ペアリングの定義加筆. (最小限の)Riemann-Rochの定理とかPic0とか. 予想以上に時間がかかってへたり気味.
1月12日_
昨日録画したクローズアップ現代で, サイボウズの社長の青野さんが出てたのを見た. 心なしか緊張してはった感じ. 働くスタイルの選択枝を増やすことは, 介護とかを考えると女性だけのためじゃない.
1月11日_
『光』(三浦しをん)
初っぱなは『泥流地帯』(三浦綾子)かと思ったら『白夜行』(東野圭吾)的なところも. 主人公の"平凡な"妻の思考が怖い. 特にラストの「そういう選択をするのか」というところ.
1月10日_
駄目元で近くの図書館の自然科学のコーナーを見に行ったら岩波の『ホモロジー代数』(河田敬義)があったよ. これ, 図書館で借りて読んでたから持ってなかった. 買えばよかったな.
1月8日_
最近空気が乾燥してる(湿度が35%とか)ので加湿器を使うのだけど, 昔買った安いやつはタイマーがついてない. 夜中30分ぐらいだけつけたいというのが難しい. で, タイマーつきコンセントを探してみたらデジタルのは操作が複雑で高いのばかり. 結局1000円ぐらいの機械式のを買った(revex PT77. しかしおそろしく検索でひっかからないページだな). 30分後という指定はできないが, 時刻合わせはダイヤルをひねるだけという簡単さ. だから予め0時30分にoffになるように設定しおけば, 夜中起きたとき現在時刻を0時に合わせればOK.
1月6日_
closeが失敗することがあるってひどいなあ

close()がエラーを返しうるのは, バッファ管理やもろもろを考えると当然のインタフェース. write()ごとに常にHDD(など)に書き込み完了させてたら使い物にならない. WindowsのCloseHandleだって失敗することはある. 実際のところclose()が成功してもディスクキャッシュにしかかかれてなくて, そのとき電源が落ちたら消えるかもしれないのでclose()だけチェックしたらいいってわけでもない. FlushFileBuffers(Win32)やfdatasync(Linux)を適切に呼ぶ必要もある.

そういうエラーを無視して通常のRAIIで殆ど問題ないケースもあるけど, データベースやロガーを作るときはエラー時対策を意識して作らないといけないだろう. ファイルに書きつつ, ネットワーク経由で別サーバに同じものを投げて冗長化するとか, ブロックデバイスレベルでミラーリングさせるとかいろいろ手法はある. そうなるとstd::fstreamではなく自分でシステムコールを直接扱うFileクラスを作ることになる. そのときはどういうシステムにするかを決めてからそのFileクラスのデストラクタで何をさせるかが決まる.

googleだと膨大なサーバは壊れる前提でシステム作ってるそうだし, 信頼性や速度, コストを秤にかけつつ落としどころを考えるしかない(cf. ウェブアプリケーションにおけるHDDの正しい使い方).

あと上記link先にはmallocの失敗は対処しようがあるとあったけど, そもそも昔のLinux(2.4の頃)のmallocは成功してもアクセスしたときに死亡することがあった. 2.6以降だと大丈夫なように設定できるけど組み込みじゃ難ありとか(cf. で、結局overommit_memoryのオススメ設定値はいくつなのさ?).

mallocのmanpageから
>デフォルトでは、Linux は楽観的メモリ配置戦略を用いている。つまり、 malloc() が NULL でない値を返しても、そのメモリが実際に利用可能であることが保証されない。これは本当にまずいバグである。
>このメモリを割り当て過ぎる動作 (overcommitting behavior) を以下のコマンドで無効にできる。

# echo 2 > /proc/sys/vm/overcommit_memory

そういう部分はC++の規格だけでは対処しきれない範疇になる.

1月4日_
仕事初め. 今年もよろしくお願いします. なんかまだ人が少ない.
1月2日_
去年の紅白で『トイレの神様』(植村花菜)を聞いてたら『便所掃除』(濱口國雄)を思い出した. 私は『詩の心を読む』(茨木のり子)で知ったけど, たとえば便所掃除という詩など. ついでにおばあちゃんと, ちょっとひねた女の子の組み合わせからは『掌の中の小鳥』(加納朋子)のオープニング. どちらもお薦め.
1月1日_
実家に甥っこや姪っこが大勢いて物凄いにぎやか. 小学生を筆頭にぞろぞろ年齢順についていくのが面白い. タクシーを使おうとすると, 止まってる後ろの運転手も何人か降りてきて(一瞬何事かと思った)ベビーカーを畳んだり荷物をトランクに入れたりしてくれて結構感激.
東京のタクシーだと大きい荷物を見ても運転席に座ったままで, トランクを開けようとすらしないのをよく見かけるのと大違い.
何年か前に新聞のコラムに, 「過剰に近いことも多い日本のサービス業の中でタクシーだけは海外のそれに負ける」というようなことを見たけど実際のところどうなんだろう. webを見ると東京MKタクシーはいいというのを見かけた.

御意見は光成滋生<herumi@nifty.com>までお願いします