Kentaro Hara(@xharaken)さんの人気ツイート(新しい順)

126
いま泊まってるホテルには "Do not disturb" の掛け札が25種類用意されていて、しかも表現が高度に文学的で、人間のコミュニケーションはここまで高次のレベルまで達したのか。というか、どれを掛けたら何が起きるかわからない・・・。
127
CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで対処しています。
128
よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpectreの原理。
129
CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへロードしてしまっている。
130
ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)
131
こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } unsigned length; char* data; };
132
世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。
133
これは本当にそうで、さすがに阿部寛のホームページまではいかなくても、ブロッキングスクリプトをなくすだけで(=全部の<script>にきちんとasyncかdeferを付ける)、ページロードは見違えるように速くなる。試しにJavaScriptをオフにしていろんなサイトを開いてみると、そのあまりの速さに驚くはず。 twitter.com/mattn_jp/statu…
134
面白いのがprobabilistic paymentという手法。1円のトランザクションを100回やると手数料がかさむので、代わりに1%の確率で100円を支払う貨幣交換を作ったらいいじゃないかというアイディア。貨幣交換に確率の概念を導入するのは、貨幣史的には十分新規的で面白い。
135
周りの人たちがEclipseがどうのこうのと騒いでて、「君もはやくEclipseを見なきゃ」と言われたので、なんだかわからずとりあえずJavaのEclipseを起動したところ、外で本当に皆既日食が起きててワロタwww 朝からなんか暗いなぁとは思ってた。。。(@シリコンバレー)
136
バームクーヘンを食べてて思ったのだけど、普段ぼくたちがやってる活動のうち、トポロジーを増やす活動(ドーナツを作る、地下鉄を建設する)と減らす活動(バームクーヘンを切る、マカロニを食べる)、どっちのほうが多いのかな?つまり、世界にある穴の数は増えているのか減っているのか。
137
こんなもの誰が解けるんだよwww 答え:mathoverflow.net/questions/2277…
138
ホテルの電子レンジでサトウのごはんを温めようと思って、レンジで2分らしいので、「2」を押してみたところ、2秒後にピーって鳴ってしまった。そこで「118」を押してみたところ、今度は1分18秒でピーッと鳴った。おそらく僕が次に取るべき行動は、「40」と押すことだと思われる。むずい。
139
「京都の伝統的なキャンディーです」と言って、ミーティングの出席者に大きな手毬飴を配ったところ、20分くらいみんなうまくしゃべれなくなって議論の進行に支障をきたす事案が発生。
140
Chromeの内部にはあまりにいろんなタスクスケジューラが乱立しすぎているので、それらを全部統合して全体として一貫した最強のタスクスケジューラを作ろうとしている。そのプロジェクトの名前を何にしようかと議論していて、「プロジェクト・ソビエト」と提案したら、却下されたwww
141
「空気をたくさん含んだ新鮮なお湯で淹れると紅茶が美味しくなる」かどうかを調べようと思って、水道水を「普通に沸かした場合(写真右)」と「泡立て器で全力でかき混ぜながら沸かした場合(写真左)」を比べてみたら、泡立て器のほうが明らかに紅茶が濃く出た(おいしい)wwww これは使える。
142
結局のところ、weは避けるのが無難、というのがぼくの結論。最初このことで騒ぎを起こしてしまったとき、ごめんなさいと思いつつも、非ネイティブにそんなこと要求しないでよ・・・とも思ったw
143
コミュニティ内のごく一部を指す意味でweを使った場合、「自分たちと自分たち以外」という意味での排他性を感じさせる発言として捉えられるおそれがあり、一方、コミュニティ全体を指す意味でweを使った場合、「なんで、君がコミュニティ全体の意志を代弁してるんだよ」と捉えられるおそれがあり、
144
ちなみに、heとsheの話は有名だけど、weも非常にデリケートなもので、利害関係が対立する複数の企業が協力開発しているオープンソースコミュニティで、何気なくweを使ってしまって炎上した騒ぎを何度か見かけたことがある。何が難しいかというと、
145
主語を省略するのがデフォルトの日本語ではこの問題は生じにくいし、人を呼ぶときも、とりあえず「さん」を付けておけば相手が誰であれ失礼にならないのは便利で、日本語って案外そういう部分は寛容にできている言語なのかもしれない(どういう文化的要素が作用してそうなったのかは不思議ですが)。
146
プログラムのコメントの話。heとsheは論外。weは「自分たち以外の存在(they)」を示唆して排他的な感じになるのでアウト。youを使ったら「そもそも代名詞自体が・・・」と懸念され、物質主語の受動態で書くことに。ここまで来ると、言語自体に欠陥があると思わざるをえない。。。
147
新卒で入社して初めてのプロジェクトが何だったかというと、Chromeでページを印刷するときに、レイアウト計算の浮動小数点数の丸め誤差が蓄積して印刷ページ数が1ページ増えてしまい、プリンタから最後に余計な白紙が一枚出てきてしまうバグを直して、世界の森林資源を救うというものだった。
148
「エディタとかOSとか、デフォルトの設定が気に入らないからって、とにかくカスタマイズしたがる人っているじゃないですか。ああいうの見てると若いなーって思うんですよ」と言ってる人に、.emacsを見せてもらったら600行あってわろたwwwww
149
「Chromeで印刷のプレビュー画面を出したあと、出てきたウィンドウをマウスでつかんでものすごい勢いで画面中を振り回すと、Macに限って、まれにレイアウトが少しずれる」バグを報告してきた人がいるのだが、どうやってこんなバグを見つけたかの方が気になる・・・。
150
なので、システムにメモリが余っている状態でChromeのメモリが多かったとしてもそれ自体は「問題ではない」わけで、重要なのは、メモリが逼迫してきたときにそれがすぐに減るかどうかなのです。なので、タスクマネージャーの数字だけを見て一喜一憂しないでね^^