タグ

2015年2月26日のブックマーク (6件)

  • JavaのTimSortがバグってる件について | さにあらず

    Python で実装され、その後 Java にも移植されたソートアルゴリズムである TimSort が盛大にバグっていることが発見されました。 このバグがどのようにして発生するのかについては、以下のドキュメントを精査して下さい。 TimSort fails with ArrayIndexOutOfBoundsException on worst case long arraysOpenJDK’s java.utils.Collection.sort() is broken: The good, the bad and the worst caseどんなことが起こるのか#通常の利用では想定しえない場所でArrayIndexOutOfBoundsExceptionが発生します。 例えば、以下のようなスタックトレースになります。 Exception in thread "main" java.l

    JavaのTimSortがバグってる件について | さにあらず
    gfx
    gfx 2015/02/26
  • データがどのように更新されてきたのか追跡する - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 みなさんは、異常なデータを見つけたが、どうしてそのような状態になったのか追跡できず困ったという経験はないでしょうか。 今回は、そんなときにクックパッドで利用されているAuditログについてご紹介します。 Auditログとは クックパッドでのAuditログは特定のデータレコードに対して発生したイベントをコンテキストとともに記録するものです。 一般的に監査ログ、証跡ログといったものがありますが、それらとは多少異なっています。 ここでのイベントとは、あるデータレコードが 作成された 更新・変更された 削除された といったものです。またそれ以外にもログインした、ログアウトした、セキュアな情報が閲覧された、といったイベントも含まれています。 コンテキストは以下のようなものを記録します。 いつ どこで 処理が行われたホスト 何が イベント 何を 対象データの情報 スキー

    データがどのように更新されてきたのか追跡する - クックパッド開発者ブログ
    gfx
    gfx 2015/02/26
  • DeepMind's AI is an Atari gaming pro now

    If you buy something using links in our stories, we may earn a commission. This helps support our journalism. Learn more. Please also consider subscribing to WIRED Google-backed startup DeepMind Technologies has built an artificial intelligence agent that can learn to successfully play 49 classic Atari games by itself, with minimal input. Cofounder and WIRED2014 speaker Demis Hassabis called the m

    DeepMind's AI is an Atari gaming pro now
    gfx
    gfx 2015/02/26
    DQN: deep Q-network
  • JSR-305: ソフトウェア欠陥検出用アノテーション

    FindBugs、IntelliJ、CheckstyleおよびPMDなどの静的解析ツールは、Java開発で広く使用されている。これらのツールは高度化されているが、処理しにくい共通の問題を抱えている。それは、通常、NULLの値を許容する場合、または数値が負にならないことが予想される場合など、APIでの暗黙の設計意思決定である。Javaでは、APIが高度であれば、これらの設計詳細がJavaDocに取り込まれるが、解析ツールには簡単にアクセスできないので、欠落したり、誤検出される可能性がある。 この問題に対処するために、多くの静的解析ツール開発者がアノーテーションを使用して設計詳細を定義することを検討している。たとえば、FindBugsおよびIntelliJは、メソッドがNULLを戻す可能性があることを示すために独自のアノーテーションを定義している。この2つのツールで使用されるアノーテーションは

    JSR-305: ソフトウェア欠陥検出用アノテーション
    gfx
    gfx 2015/02/26
  • Maven Centralが依存ライブラリの "3.+" のようなバージョン表記を認めなくなってた - Islands in the byte stream (legacy)

    http://central.sonatype.org/articles/2014/Oct/28/enforcing-valid-dependency-versions/ 2014年10月の話ですが、これのせいで手元のライブラリのアップロードが失敗するようになってました。これからは、依存ライブラリのバージョンは "3.+" ではなく"[3,4)" (3以上4未満)などのような数学的範囲表記(mathematical range syntax)をしなければならない、ということです。詳しくは上記エントリを参照のこと。 変更例: https://github.com/gfx/android-power-assert-plugin/commit/01d9cdcb0a3f61a12779c92ef977c880eec29006 理由は+表記(dynamic version)が依存関係の仕組みを壊すか

    Maven Centralが依存ライブラリの "3.+" のようなバージョン表記を認めなくなってた - Islands in the byte stream (legacy)
    gfx
    gfx 2015/02/26
    blogged
  • Enforcing valid dependency versions

    gfx
    gfx 2015/02/26
    maven centralのversioning notationが変わってた。12.+みたいなのが認められなくなった…。