タグ

2010年2月21日のブックマーク (5件)

  • immutable な string クラスを作りたい(2) - 野良C++erの雑記帳

    前回 の続き。 用意した可変長バッファに、参照カウントを仕込みます。 しかし、単純に参照カウントを組み込むだけではつまらないので、一工夫。 参照カウントの部分を、それ以外の部分とは独立した部品として切り出してみます。 そうすれば、以降に参照カウントを使うクラスを作るときに楽できますし、可読性も上がります。 実を言うと既存の俺ライブラリにも、参照カウントを仕込むためのライブラリ reference_counter が存在します。 するのですが、こいつは delete 演算子でしか解放が行えません。 よって、メモリを char の配列で確保してから placement new を呼んでる今回は、残念ながら使うことが出来ません。 ですので今回は、解放処理に delete 演算子だけでなく、任意の deleter を指定できるようなライブラリ intrusive_hook を作ろうと思います。 と

    immutable な string クラスを作りたい(2) - 野良C++erの雑記帳
    overlast
    overlast 2010/02/21
  • 3分探索 - ICPC突破専用ザク

    凸関数の極値を求める方法を知りたくなってググってみたところid:nodchipさんのエントリがヒットした. 以下,個人的なまとめ. 実数探索三種類解説 - nodchipの日記 http://d.hatena.ne.jp/nodchip/20090303/1236058357 単調関数の零点を求めるのには2分探索が使われるけど,凸関数の極値を求めるのには3分探索が使われるらしい. 三分探索は凸関数の極値を求めるために使うアルゴリズムです。このアルゴリズムは関数が微分不可能な場合にも使えます。やり方は探索領域を三分割し、真ん中二の境界のうちどちらの値が大きいかを調べ、それとは逆の方の境界を新たな探索領域の端にするというものです。一回のイテレーションで関数の計算を2回行い、探索領域が2/3になります。 3分探索がうまくいく理由は以下のとおり. f : [a,b]→R : 上に凸な関数とし,区

    3分探索 - ICPC突破専用ザク
  • dd, awk, less を使って PDF からテキスト抽出

    dd, awk, less, gzip などの伝統的な UNIX ツールのみを使って PDF からテキストを手動で抽出する方法を紹介します。(約42分) 参考資料: naacl06-shinyama.pdf (実際に使ったPDF) jo.pdf (実際に使ったPDF) Adobe CMap Resources (Adobe-Japan1 CID と Unicode対応表) PDFMiner (PDFテキスト抽出ツール) Yusuke Shinyama

    overlast
    overlast 2010/02/21
  • Route 477(2010-02-19)

    ■ [scala] foursquareが半年かけてScala+Liftに移行した話 foursquareがLiftに切り替えたという話を聞いてびっくりしましたが、どうやら当だった模様。 スライド:foursquare.com & scala/lift 以下、内容抜粋 もとはPHP+Apache+MySQLだったが、エンジニアが書いたものじゃなく、これからの拡張のためには書き直すべきだった 静的型・コンパイル言語が好き。Wicketを試したけど、Object型使いすぎなのと関数がfirst-classでないのがちょっと Javaの頃からなるべく関数的に書くようにしてたんで、Scalaは自然 コールバック書くだけでAjaxになるのはいいね! まあせっかくスタートアップなんだし、変わった・面白いものを使ってみたかったってのはある リライトについて (書き換え中は?)PHPとセッションの共有と

    Route 477(2010-02-19)
  • Lift :: Home

    When I decided to put Innovation Games® online, I knew that I couldn't afford a massive development effort. I needed a small, sharp team who could leverage best-in-class tools to help us solve the problems we knew that we'd have to solve in creating a new kind of collaborative gaming experience on the web. David suggested Lift and Scala and initial testing proved that we could realize the develope