タグ

2010年2月9日のブックマーク (20件)

  • Route 477(2009-06-09)

    ■ [ruby] Rubyのテスト環境大戦争 おまいらは当にテストが好きだな!というわけで、Rubyのテスト関係のライブラリを並べてみた。 テストフレームワーク Test::Unit Ruby標準添付のユニットテスト用フレームワーク。 RSpec DSLを使う、「BDD」という概念を流行らしたユニットテスト用フレームワーク。 Cucumber 自然言語を使って、ブラックボックステストを記述する。RSpecの「Stories」と呼ばれていた機能が独立した。 あとはShouldaとかbaconとかいろいろありますけども。 モック・スタブライブラリ モック=あるオブジェクトに期待したメッセージが飛ぶかどうかテストするためのオブジェクト、 スタブ=ネットワークが絡むとか、実際のオブジェクトが使えない場合に使う偽オブジェクト。 と思ってるんですけどどうなんですかね(more: モックとスタブの違い

    Route 477(2009-06-09)
  • Subversion ブランチとタグ - とみぞーノート

    1.ブランチ/タグ 1-1 ブランチ/タグの設定 Subversionはブランチとタグは区別がなく単なるファイルの複製でしかない。どちらもsvn copyによりコピーすればよい(コピー先のディレクトリがブランチ名/タグ名と見なせる)。コピーするとファイルがAddされるので、最後に忘れずcommitをすること。 ブランチとタグを区別するためにコピー先をディレクトリで分けておくとよい。 以下の例ではtrunkに流のソースがあり、branches以下にブランチ、tags以下にタグを格納するものとする。 SampleProg/ プロジェクトTop +----trunk/ 流のソースを格納 +----tags/ タグを格納する為のディレクトリ +----branches/ ブランチを格納する為のディレクトリ TrunkからdevBranchブランチを作成する # cd (作業ディレクトリ) #

  • mod_proxy_balancerを使う時のProxyPassReverseの設定 — ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

  • Clojure のエレガントなところ - hozumiの日記

    リスト、ハッシュマップ、ベクタ、集合のリテラルがある ;リスト (1 2 3 4) ;ハッシュマップ {:a 1, :b 2, :c 3} ;ベクタ [1 2 3 4] ;集合 #{1 2 3 4} よく使う基データ型のリテラルがあるというのはソースコードに図が入ってるみたいで考えるよりも早く理解できる。しかもいじりやすい。他の多くの言語でもこれらの基データ型のリテラルは用意されているが、Clojure ではこれらはとてもよく使う重要なビルディングブロック。 リスト、ハッシュマップ、ベクタ、集合、文字列 をシーケンスとして抽象化 (take 2 '(a b c d)) ;リスト ;=> (a b) (take 2 {:a 1 :b 2 :c 3 :d 4}) ;ハッシュマップ ;=> ([:a 1] [:b 2]) (take 2 [:a :b :c :d]) ;ベクタ ;=> (:a

    Clojure のエレガントなところ - hozumiの日記
  • Template::Semantic - トミールの技術系日記

    追記: Yokohama.pmで話してきました。 http://e8y.net/blog/2010/03/06/p287.html - http://search.cpan.org/perldoc?Template::Semantic Upした。 benchmarkとってみたけど、TTよりは速い。Text::MicroTemplateには届かない。 http://github.com/tomi-ru/Template-Semantic/commit/570e295d3fb03ce34f94272e8940fd4311fc0992 ただ「元のHTMLにテンプレート言語を埋め込んでいる時間」を考えるとずっと効率的なテンプレートエンジンだと思う。デザイン→HTML→テンプレート の過程の最後の部分を飛ばせる。 なんとか.pm が近く開催されたら宣伝しよう。 podにも書いたけどまだAPI変えても

    Template::Semantic - トミールの技術系日記
  • Plack::App::Proxyについてだらだらと - Pixel Pedals of Tomakomai

    去年の年末、FlashのXMLSocket通信を横取りしてダンプするアプリを書こうとしたのですが、その時に見つけたのがLee AylwardさんのPlack::App::Proxyです。HTMLを置換してFlashの接続先を横取りしつつ、自前のXMLSocketサーバを立ち上げるってのが1プロセスでできるってのは、非同期なWEBサーバならではの技ですね! ただ、Plack::App::Proxyを触り始めてみると、そのままではなかなか難しい部分が色々あったりしたので、コメンテナにしてもらってちょくちょくいじったりしています。(ちなみに、miyagawaさんもコラボレータで、私よりバリバリいじってますw) 一言で言えば、 Plack::App::Proxy がカバーしているのは Apache の mod_proxy の機能です。 使い方はpod見てもらうと全部載ってますが、例えば /back

    Plack::App::Proxyについてだらだらと - Pixel Pedals of Tomakomai
    kamipo
    kamipo 2010/02/09
  • Google Slides: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more

  • kumofsはなぜ落ちないか - Blog by Sadayuki Furuhashi

    前回は、kumofsはなぜスケールするかということについて紹介しました。その中で最後に、耐障害性もスケーラビリティにとって重要だーと述べました。 そこで今回は、kumofsはなぜ落ちないのか、なぜ耐障害性が高いと言えるのかーということについて紹介したいと思います。 分散システムはテストが難しいことに定評がありますが(たぶん^^;)、その中でも耐障害性の検証は最上級に困難な部類です。 耐障害性は実際のところ、アルゴリズムの設計以前に実装上のバグが大きく影響するので、設計上は耐障害性が高いと言っていても、実際に使ってみると良く止まるという話はありがちな話です。(個人で開発している場合など、開発リソースが小さい場合はなおさら) そのため耐障害性の高いシステムを実現するためには、実装しやすくバグが入り込みにくい設計も重要かなーと思います(もちろん、アルゴリズムも重要ですが)。 分散システムには複雑

    kumofsはなぜ落ちないか - Blog by Sadayuki Furuhashi
  • Kazuho@Cybozu Labs: Range Coder の終了処理

    « Tritonn (MySQL+Senna) の join を高速化 | メイン | Range Coder の展開速度を SSE で高速化 (してもらった) » 2008年02月22日 Range Coder の終了処理 CodeZine:高速な算術圧縮を実現する「Range Coder」(算術圧縮, データ圧縮, Range Coder)等を見ていると、多くの Range Coder の実装では、終了処理において冗長な出力をしているようです。 私の理解と記憶が正しければ、予測の上限値と下限値が異なる最初のビットまで出力すれば、残りのビットの出力は不要なはずです。Range Coder が一般化する以前の、ビット単位の操作を行っていた Jones 符号化器はそのような実装がされていたように思うのですが、Range Coder で速度を稼ぎ始めた時に、この点が見過ごされるようになったので

  • Kazuho@Cybozu Labs: Range Coder の展開速度を SSE で高速化 (してもらった)

    ご覧のように、データを出現頻度の降順で並び替えた上で SSE によるシーケンシャルサーチを使うことで、二分検索を使った場合と比べて 56% パフォーマンスが向上しています。また、この手法はデータのアクセスパターンも改善する (二分検索によるランダムアクセス→シーケンシャルアクセス) ので、前段で多数のテーブルの切り替えを行っている場合等にも有効です (キャッシュミスの影響が小さくなるため)。 この最適化を施した Range Coder は CodeRepos においてあります。興味のある方はご覧ください (/lang/cplusplus/range_coder/ - CodeRepos::Share - Trac) 。上のベンチマークは、 $ ./build_table.pl --ordered < ../calgary_corpus/paper1 > table.c && g++ -DR

  • ストリーミングSIMD拡張命令 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ストリーミングSIMD拡張命令" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2018年10月) ストリーミングSIMD拡張命令(英: Streaming SIMD Extensions、略称:SSE)は、インテルが開発したCPUSIMD拡張命令セット、およびその拡張版の総称である。後継の Advanced Vector Extensions (AVX) と Advanced Matrix Extensions (AMX) についても項で記載する。 概要[編集] SSEは、x86アーキテクチャに8の128ビットレジスタを新設し、浮

  • PC

    日経コンピュータ 勝村幸博の「今日も誰かが狙われる」 高校入試出願のメール不達は必然 Gmailガイドラインの誤解を解く 2024.03.01

    PC
    kamipo
    kamipo 2010/02/09
  • Optimization of sort() - Islands in the byte stream (legacy)

    Perlの最適化器はかなり頑張ってsort()の最適化を試みている。具体的には,配列をその場で直接ソートする場合,数値または整数でソートする場合,ソートブロックの$aと$bを単純に入れ替えた場合において,最適化された高速なバージョンが使われる。 以下はすべて5.10.0で確認した。 配列を直接ソートする場合 ソート後のリストを元の配列に代入するケース(たとえば"@array = sort @array")では,sort()に渡された配列を直接並び替えるため,メモリと速度の両方で勝る。 確認コード: $ perl -MO=Concise,-exec -e '@a=sort@a' # ... 7 <@> sort lK/INPLACE # ... ソートオペレータにおける「INPLACE」というフラグがこの最適化の表れである。 数値でソートする場合 ソートブロックでの数値による比較(たとえば"

    Optimization of sort() - Islands in the byte stream (legacy)
  • scale out の技術 (in UNIX magazine, April 2009)

    scale outの技術 首藤 一幸 Last-updated: January 5, 2010 注: このページの文章は以下の記事の元原稿です。 首藤一幸, "スケールアウトの技術", クラウドの技術, pp.88-101, (株)アスキー・メディアワークス, ISBN978-4-04-868064-6, 2009年 11月 6日 アスキー・メディアワークス社の 書籍紹介ページ Amazon.co.jp の ページ 首藤一幸, "スケールアウトの技術", UNIX magazine 2009年 4月号, pp.78-91, (株)アスキー・メディアワークス, 2009年 3月 18日 データベースに求められる性能を試算したところ、 十台、百台…数万台のサーバが必要になった。 クラウドを構築する側はこういう問題に直面し、解決しようとしてきた。 台数に比例した性能を引き出すこと、つまりsca

  • サーバ仮想化環境でのお薦めストレージ構成 at nkjmkzk.net

    A Place to discuss Oracle VM, Linux and Other Great Software.サーバ仮想化環境では「リソースプール」という概念を実現するために共有ストレージ構成が多く採用されます。しかし、そもそも現在のCPU性能とDISK I/O性能を鑑みれば、そもそもDISK I/O性能はCPU性能の進化に追いついておらず、共有ストレージ構成とすれば追い打ちをかけるようにそこがボトルネックとなります。多くの環境ではサーバ仮想化環境では「共有ストレージ型前提。しかしこれまでの何倍ものI/O性能が必要」という要件に対応するため、ミドル〜ハイエンドのストレージ装置を採用するという選択を行っています。その結果初期導入費用が高価なのはもちろんですが、そのあとも莫大な保守費を支払うことになります。そして拡張できるものの、拡張するためのパーツがまた高価、というスパイラルに陥

  • はてなブログ | 無料ブログを作成しよう

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    はてなブログ | 無料ブログを作成しよう
  • rvmが凄く良い - I am Cruby!

    rubyrvmを導入したのですが、これまた超絶に便利です。これは使うべき。早く使っておけば。くうう。 さてさて、何が便利なのでしょう? 各rubyのバージョン、patch-levelに応じて gem を分けることが可能 一部は共有し、一部はそれぞれの環境で、ということも可能らしいとにかく細かい使い方ができるみたいです。aptitudeで入れたsystemrubyと共存できる 普通に使うのはaptitudeのrubyプロジェクトで使うのはこのrubyと切り分け可能パッケージングされたものがpatch-level最新のものでないことは良くあること。とはいえ、普通にruby使うときなんかは他のパッケージとの兼ね合いもあるし、aptitudeで入れたrubyを使いたい。でも、patch-levelが低いruby仕事で使うのはちょっとなーという時に便利です。 .rvmrcによってプロジェクト

  • Ludia(PostgreSQL+Senna)のインストール備忘録

    PostgreSQLを使っていて、N-gramでサクっと全文検索したいなんて時。 ・Ubuntuに入れたPostgreSQL8.3 ・Fedoraに入れたPostgreSQL8.2 に、インストールしたので、その時の備忘録。 【PostgreSQL】 UbuntuはPostgreSQLをパッケージで入れてたのですが、 開発用のモジュール(なんちゃらdevel)とかがないよーって怒られるので、 ソースからインストールしておきます。 【使ったtarball】 senna-1.1.4.tar.gz ludia-1.5.2.tar.gz 【Sennaインストール】 Ubuntuに入れたときは、configureした後に、makeとmake installをそのままやりましたが、 とにかくアホみたいに時間がかかって、CPUリソースをいました。 調べてみたら↓らしいので # なんかRubyが悪いみた

    Ludia(PostgreSQL+Senna)のインストール備忘録
    kamipo
    kamipo 2010/02/09
  • MySQL full-text parser plugin collectionを入れる。 - tuedaの日記

    mysqlの全文検索は日語で検索できない(英語みたいに区切り文字としてスペースがあって単語区切りが明白ではないから)。 どうすっべと昔悩んだがmysql-5.1からはプラグイン形式で機能を拡張できて、 例えば MySQL用N-Gram全文検索プラグイン http://mysqlbigram.googlepages.com/home-j を入れると検索できるようになる。原理は上のHPを見る。 それとは別に mysql full text parser plugin collection http://mysqlftppc.wiki.sourceforge.net/ というプラグインもある。 以前上記のMySQL用N-Gram全文検索プラグインを入れて満足して使っていたが、今回はせっかくだから使ったことがない形態素解析のmecabを使った方式を試してみる。 plugin collection

  • Re: インデックスをキャッシュに保持する方法について (Senna-dev 661) - senna - OSDN

    morit****@razil***** morit****@razil***** 2007年 8月 15日 (水) 14:48:18 JST 前の記事 [Senna-dev 660] Re: インデックスをキャッシュに保持する方法について 次の記事 [Senna-dev 662] Re: インデックスをキャッシュに保持する方法について 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] お世話になっております。森です。 すみません。INITIAL_N_SEGMENTSは主に更新速度の向上に寄与しますが、 検索速度にはあまり影響しないかもしれません。 ディスクI/Oがネックで検索速度が出ないのは、起動直後が特に顕著で、 必要な領域が適度にOSのキャッシュに載るに従って徐々に検索が高速になります。 起動前にインデックスファイルを以下のようにして読ませてしまうと効果があ

    Re: インデックスをキャッシュに保持する方法について (Senna-dev 661) - senna - OSDN
    kamipo
    kamipo 2010/02/09
    インデックスファイルの総サイズがOSのキャッシュサイズよりも大きくなる場合は、 以下の優先順位でメモリに載せるようにする。 1. *.SEN.l / 2. *.SEN / 3. *.SEN.i / 4. *.SEN.i.c