タグ

2010年10月22日のブックマーク (8件)

  • DSAS開発者の部屋:Twisted vs Tornado vs Go で非同期Webサーバー対決

    Goのランタイムのバグを踏んで解決しました。解決までの過程を記事にします。 同じようなランタイムのバグを踏んで、小さい再現コードを作れない場合の参考にしてください。 自分のプログラムを疑う あるSlackチャンネルで Go で書かれたサーバーのクラッシュが話題になっているのを見つけました。その時に共有してもらったトレースバックです。 runtime: pointer 0xc007b8af97 to unused region of span span.base()=0xc004000000 span.limit=0xc004002000 span.state=1 fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?) runtime stack: runtime.throw(0xc046ca,

  • nabokov7; rehash : 複数人開発チームのマネジメントに必要なもの - git, 個別開発環境, そしてシャッフルアルゴリズム

    October 22, 201010:13 カテゴリプログラミング組織とyou 複数人開発チームのマネジメントに必要なもの - git, 個別開発環境, そしてシャッフルアルゴリズム perl 界隈の皆様、YAPC::Asia 2010 おつかれさまでした。 @nipotan のライトニングトークはシャッフルに関する話でした。で、ここで、なぜそもそもシャッフルが出てきたのかについて、チームマネジメント的な観点から補足したいと思います。 (元の発表はこちら: 動画 / スライド ) ■相互チェック体制の運用 ライブドアのプログラマは、だいたい一人でひとつのサービスを受け持っています。一人が複数のサービスを受け持つのは普通ですが、一つのサービスに複数のプログラマがフルコミットするという贅沢な状況はあまりありません。 担当が一人ずつしかいないと、担当の人が休むと何も進まない。やりたいことが色々あ

  • C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ある程度大きな C++ のコードを書いたことがある人なら大抵はこの問題について考えますよね。まして Boost なんて使っていた日には「コンパイル時間が Boost される」とか言われる訳です。 コンパイル時間を活用してコーヒー入れたりトイレ行ったりブラウジングしたり Twitter に「リビルドなう」とか Post したりといった素晴らしい方法もありますが、ここではビルド時間を短縮する方法を考えていきます。 事前知識 多分どこでも言われてることだと思いますし、結構適当に書いてるので読み飛ばしてもいいと思います。 コンパイルが遅い原因 C++ のコンパイル時間の多くは、プリプロセッサにあります。プリプロセス時に行われる include やマクロの展開でかなり多くの時間を取っています。 きっと Boost.PP なんて使っていた日には「コンパイル時間が Booooooooooooooooos

    C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • PHPのsort関数は相当おかしい - hnwの日記

    追記(2009/02/28 15:35):ソートする配列の要素が数値または数値形式の文字列のみの場合は、<、==、>が推移律を満たすので、この記事のような矛盾は起こりません。念のため。 オヤジギャグがこらえられなくなったら立派なオヤジだと思います。それはさておき、今日はPHPのsort関数が不思議な挙動をする例を紹介します。 sort関数の紹介 sort ― 配列をソートする 説明 bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) この関数は配列をソートします。この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。 PHP: sort - Manual マニュアルをみる限り普通のソート関数です。省略可能な2番目の引数の意味は次の通りです。 sort_flags オプションの 2 番目のパラメータ s

    PHPのsort関数は相当おかしい - hnwの日記
  • nested_exceptionの使い方

    nested_exceptionは、例外をネストするための、簡単なクラスである。ユーザー定義のクラスから継承して使うことを想定されている。 struct CustomException : std::nested_exception { } ; int main() { try { try { try { throw 123 ; // 何らかのエラー } catch( int e ) { // ここで、元の例外の値を保持しつつ、別の例外を一時的にthrowしたい std::cout << e << std::endl ; throw CustomException() ; } } catch( CustomException e ) { std::cout << "CustomException" << std::endl ; std::rethrow_if_nested( e ) ; /

  • COMったちゃん - 名古屋313の日記

    C++, DirectX | 22:49DirectXはCOMったちゃんなので、大抵はIUnknownを継承している訳です。よって解放にはRelseaseを使うことになる訳です。これをstd::unique_ptrで扱いうにはカスタムデリータを書いてやるわけですが、特殊化の方向で行くと痛い目にあうみたいです。 namespace std { template <> struct std::default_delete { void operator ()(IUnknown * const com) { com->Release(); } }; } int main() { std::unique_ptr direct3d(Direct3DCreate9(D3D_SDK_VERSION)); return 0; } はい。このコードはmainを抜けるときにこけます。どうやらIDirect3D

  • wiki : A Brief History of Data Sharing [Articles/TDPL - Concurrency in D/2] - D言語友の会

  • chroniumのプロセスモデル « ku

    chromeのブラウザであるchronium(safariとWebKitみたいな関係?)についてのProcess Models (Chromium Developer Documentation)を要約しつつ和訳したものです。 originの違いでプロセスを別にする、というところがおもしろかったです。同じoriginなら、何か重大な欠陥があってプロセス上のメモリを読み出されても問題ないということか。 Overview Webのコンテンツは膨大な動的コードを含むようになって、よりドキュメントというよりはアプリケーションになってきている。この変化によって、 ブラウザは単なるドキュメントのレンダラではなく、OSの役割を果たすようになってきた。chromniumはOSがやっているように、サイトやブラウザを複数のOSのプロセスを使って隔離しています。ウェブアプリケーションを安全で堅牢に実行するため