ブックマーク / kzr-2.hatenadiary.org (3)

  • JavaScript によるオーディオ&ビジュアルプログラミング - Radium Software

    僕は JavaScript が好きだ。できるだけ多くのことを JavaScript で済ませてしまいたいと考えている。 以前は JavaScript では絵や音を扱うことができないという点がボトルネックになって,応用の幅を狭めていた。これが最近になると, Canvas 要素のおかげで絵を扱うことができるようになったり, Flash を代行役にすることによって音を出せるようになったりと,いろいろ状況が変わってきている。 そこで今回は,以前から機会があれば触ってみたいと思っていた Processing.js と SoundManager 2 を使って, JavaScript によるオーディオ&ビジュアルプログラミングに挑戦してみた。 Processing.js とは Processing.js は,ビジュアルデザイン向けプログラミング言語 Processing を模して作られた JavaScr

    JavaScript によるオーディオ&ビジュアルプログラミング - Radium Software
  • 単純で正しそうなものが正しいとは限らない - Radium Software

    Coding Horror: The Danger of Naïveté 配列の中身をランダムな順序にシャッフルするコードを書きたい。単純でいいから分かりやすくて間違いの無いコードを書こう。例えば,こんな感じに…… for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } これは単純で分かりやすい! でも残念! このコードは間違っている。シャッフル後の順序に偏りが出てしまう。正解はこちら。 for (int i = cards.Length - 1; i > 0; i--) { int n = rand.Next(i + 1); Swap(ref cards[i], ref cards[n]); } ぱっと見て違いが分かる? イン

    単純で正しそうなものが正しいとは限らない - Radium Software
  • パッチから exploit を自動生成する技術 - Radium Software

    Brumley, Poosankam, Song & Zheng. Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications. カーネギーメロン大学の研究者による,パッチから exploit を自動生成する技術の論文。パッチによって変更される箇所を解析することにより,パッチ適用前のプログラムに存在していた脆弱性を見つけ出す,というもの。 実際にこの技術Microsoft の5つのプログラムに対して適用してみたところ,そのいずれからも exploit を生成することができた。しかも,そのうち3つは,公には脆弱性が知られていないものだったという。 この技術によって生成することができるのは,あくまでも「パッチ適用前のプログラムに対する exploit」であって,ひとたびパッチが当てられて

    パッチから exploit を自動生成する技術 - Radium Software
  • 1