タグ

Algorithmと考え方に関するkyo_agoのブックマーク (3)

  • 「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に

    「UNIXはただ死んだだけでなく、当にひどい臭いを放ち始めている」「キャッシュはアーキテクチャではない。単なる最適化だ」などの語録を生んだ「Goの父」とも呼ばれるロブ・パイク氏の「プログラミング5カ条」について、ネット上で話題となっています users.ece.utexas.edu/~adnan/pike.html http://users.ece.utexas.edu/~adnan/pike.html Rob Pike's Rules of Programming (1989) | Hacker News https://news.ycombinator.com/item?id=24135189 パイク氏の「プログラミング5カ条」は以下。 ルール1:プログラムのどこで処理時間がかかるかはわからない。ボトルネックは意外な場所で発生するので、ボトルネックがどこにあるかを証明するまでは、臆測

    「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に
  • 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama

    いろいろなソフトウェアで、大きいランダムな値をユニークな値とみなすということが行われている。例えばユニークな識別子としてよく使われるUUIDはただの122ビットの乱数だ。gitもSHA-1ハッシュ値が160ビットの乱数のように扱えることを期待して、それをユニークな識別子として使っていた。実際にはランダムな2つの値が同じになる確率はゼロではないのに、なぜこれが安全なやり方だと言えるのだろうか? それについてちょっと説明してみよう。 あるシステムが、乱数で生成された識別子の衝突のなさに依存しているとして、仮に衝突が発生した場合、相当悪い結果、例えば復旧不可能な形でデータベースが壊れてしまうとしよう。これはどれくらい危険なのだろうか? 数学の問題で、学校のクラスの中で同じ誕生日の人が1組以上いる可能性は思ったより高いという話を聞いたことがあると思う。あるランダムに生成された値が衝突する確率という

    十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama
  • Bitcoinの何が革新的なのか? - アンカテ

    なんとなくbitcoinがわかったような気がしたので書いてみる。 「P2Pで取引のデータベースを管理する」と聞いて、最初に不思議だったのは、「なぜみんなそれに自分のコンピュータを提供するのだ?」ということだった。 多数のコンピュータで分散処理をしてDBを管理すれば、やり方によっては効率的で確実な管理ができることは想像がつくが、誰がそのコンピュータを提供するのだ? 金がからむとなれば、それは儲けようとしてやる以外に考えられない。 しかし、P2Pというのは、単なる分散処理ではなくて、身元保証の無い分散処理だ。ネットワークを構成するノードの大半のコンピュータの所有者は、どこに住んでいるか誰なのかわからない。それをわかるようにしたら登録制度が必要になり、その登録制度を運用し管理する主体が必要になる。そういうのは普通、P2Pとは呼ばない。 だから、P2Pという限りは、ノードの中に、インチキのプログラ

    Bitcoinの何が革新的なのか? - アンカテ
  • 1