帰省
8/3の夜までネットから離れます.
帰省
8/3の夜までネットから離れます.
@crossquareさんのHaskellの型エラーを分かりやすく表示する研究論文の紹介. いきなりがちな話でおののく. 急に来られなくなった方がいたのとちょっと時間が余ったのでmemory sanitizerの紹介をさせてもらった.
歌舞伎座タワーの入ろうとうろうろしているうちに夜ご飯を食べ損ねてしまった.
しかしどうも体調が悪いせいか食欲がないのでまあいいか.
ここ数日ずっと耳鳴りしてるような気がするので明日耳鼻科行こう.
鼻水が止まらない
眼鏡も修理中でパソコン用のしかないのが負担なのかも. 何か買ってくるか.
『僕たちの国の自衛隊に21の質問』(半田滋)
自衛隊の人にいろいろ質問して実際の人の話が聞けるのかと思ったら, そうではなかった. とはいえ, いろいろ初歩的な部分で分かってないのもの多かった.
『その女アレックス』(ピエール ルメートル 橘明美訳)
言われているほど面白いとは思わなかった. オープニングは引き込まれるが, あとはやたら残虐で気持ち悪いだけ. 主要人物たちの復讐方法がなぜそれを選んだのかわからない. 特に冒頭と最後の方法. 説得力がない.
C++11機能サポート一覧
私はコンパイラのバージョンや種類を気にするようなC++のコードはあまり書きたくないのだけど, まあ必要になるときはあるし.
新オフィス
荷物の片づけやネットワークの設定やらでどたばた. オフィスはすごく広くなったけど私の周りは逆にこじんまりした感じ. なんでだろう.
面白そうと思ったけど, 画面の周りの枠が大きい上動いてうっとうしいことこの上ない. 5分で見るのを止めた. なんで邪魔なものをつけてるの.
『宇宙になぜ我々が存在するのか』(村山斉)
『宇宙は本当にひとつなのか』と同じ著者のより新しいもの. ところどころ重複してる. 疲れてぼーとしていたので読んでいた.
インフレーションで宇宙が3mmぐらいの大きさになってからビッグバンでゆっくり大きくなったらしい. インフレーションとビッグバンが逆に起こったと書いてる本もある.
ヒッグスによるヒッグス粒子の予言, 最初に投稿した論文にはそういう記述は無かったらしい. レフリーが『それだけだと2カ月前に投稿された論文に対して新規性がないので「結論に新しい粒子がある」と追加したら』と提案したらしい. それで発見者になったことになった.
そのレフリーは先日亡くなった南部陽一郎だったそうな. すごい.
眼鏡
昨日急にメガネのフレームが折れた. まだ2年半ぐらいしか使ってないし, 踏んだり強い力を加えたわけでもないのに. おかしいだろうと販売店に持って行ったけどどうなるかなあ. 2週間ほどかかるらしくてその間は, 度を弱めたパソコン用の眼鏡を使うことになるので辛い.
How to use MSan-instrumented libc++
ドキュメント読んでなくて, すいません. 書いてある通りにlibc++をbuildしてリンクしたらちゃんと動きました.
会社の引っ越し作業. 東京に来てから会社が移動するのは通算5回目. 最初は歩いて通える場所だったのにどんどん遠くなっていく. ウルトラワーク(かなり自由な在宅勤務制度)が本当にありがたい.
Memory sanitizer
先日社内勉強会でMemory sanitizerの解説論文の紹介をした. そのときの資料.
address sanitizer(asan)じゃないので間違えないよう. asanはヒープオーバーフローやバッファオーバーフローを検知する. こちら(msan)は未初期化メモリを検知する. valgrindの10倍ぐらい速いというのがうり.
メモリ1bitに1bitの初期化フラグを持ち, 未初期化メモリを伝搬させる. その状態のままシステムコールなどが呼ばれたときに初めて警告を出す. たとえばメモリ上の1byteだけ確定していて, あとはゴミなのだけど4byte読んでからマスクする:
p +--+--+--+--+ |1a|* |* |* | +--+--+--+--+ a = *((uint32_t *)p) & 0xff;
というコードはありがちだけどaの値は未初期化ではない. これを正しく検知してfalse positiveをなくしたい.
次のサンプルコードではmain()を抜けたときに初めて警告がでる.
// clang -fsanitize=memory -fsanitize-memory-track-origins=2 -g t.c #include <stdio.h> int arr[2]; void shift() { arr[1] = arr[0]; } void push(int *p) { shift(); arr[0] = *p; } int pop() { int x = arr[1]; shift(); return x; } void func1() { int local_var; push(&local_var); } int main() { func1(); shift(); return pop(); }
これ自体はうまくいったのだけどXbyakで試すとどうもよく分からないエラーがでる. 環境はUbuntu 14.05のapt-getで入れたclang-3.6. コードを最小化したら
#include <list> typedef std::list<int> List; int main() { List list; list.push_back(0); // 実際にはList::_Node::_M_hook }
ライブラリか何か不整合かな.
私が正義だ
幼稚な比喩, 非現実的な例, 論理的不整合だらけの主張. そして説明が面倒になったら私が正しいとごり押しする. 「私」が取れる責任なんてたかが知れてる. 仮にその内容に同意するところがあったとしても, そんな手段には反対すべき. それが認められるなら, 今後ずっと優秀な人がよりひどいことでも通してしまうだろう.
CPGenRandom
Microsoft Officeで使われている擬似乱数生成関数はadvapi32.dllのCryptGenRandomじゃなくてCPGenRandomだった. これはrsaenh.dllにある. CSP Functionsによると昔のAPIのようだ.
体が動かない
疲れ果ててずっと寝ている.
CryptGenRandom
暗号論的擬似乱数生成関数CryptGenRandomを固定にすればいろいろ怪しいことができるんじゃないかと試してみたがどうもうまくいかない. 何故だろう.
『宇宙は本当にひとつなのか』(村山斉)
2003年以降に分かってきた宇宙は普通の物質が4%, 暗黒物質が23%, 暗黒エネルギーが73%らしい. 殆どなにも分かっていないということが分かってきたと.
各章の終わりの質疑応答がよかった. なんかもやもやした疑問がある程度解消される. 宇宙の年齢が137億年なのになんで300億年先の銀河が見えるのとか. 宇宙の膨張が加速している話はよく分からなかったが. しかし, 後半の多元宇宙とか人間原理とかちょっと無理筋な気がする.
C++11まではlvalueからrvalueに変換したらundefined behaviorだったのがC++14ではindeterminate valueに変わっていたんだ. へえ. こういう違いが最適化フローに影響すると.
unsigned char c; unsigned char d = c; // OK. dは未決定の値 int e = d; // 未定義 → C++14から未決定の値
同僚の@takesakoさんが発表予定. ツールは私が数年前に作っていたもの(未公開)に竹迫さん依頼で機能追加しました. 一緒に行かないかと誘われたのだけどMERSとかちょっと怖くて止めてしまいました.
ドローン, 複雑ネットワーク, LSM-Tree, 構造化オーバーレイの話とか.
いろいろな分野の話が専門外でも適度に分かって面白い. LINEの中村俊介さんの話は普段扱うデータ量とスケールが全然違いすぎて驚くばかり.
フランス留学中の@sinya8282さんにも一時帰国していた. せっかくなので学生の方たちに懇親会で新屋さんを担当したんですよと, 「サイボウズ・ラボユース」第5期生の募集の宣伝をした. 私は主にC/C++を使ったプログラミング開発のサポートを担当する予定です. 意欲ある学生のご応募お待ちしています.
Microsoft MVP Developer Securityコミュニティ
ほとんどMicrosoftに特化したことはやってないけど受賞した. ありがとうございます. デブサミの講演や『クラウドを支えるこれからの暗号技術』の資料などが評価されたのかな.
でもメールをよく見たら「2011 Microsoft MVP アワードの受賞おめでとうございます!」って書いてあるなあ. 本物かなあ. Microsoftのmvpawardのページにログインできたから大丈夫だと思うけど.
PKC, TCC, CT-RSAを勉強する会2015に参加. いろいろ勉強になりました. どうもありがとうございます. 久しぶりに伊豆さんに会えてよかった.