タグ

2009年12月8日のブックマーク (5件)

  • 140行で作る分散リアルタイム検索エンジン(Twitter Streaming API対応) - 古橋貞之の日記

    マトモに使えるRPCライブラリ MessagePack-RPC for Ruby のバージョン 0.2.0 をリリースしました! 新たにコネクションプーリングの機能を追加しました。一度接続したコネクションを共有して使い回すことができます。コネクションを何度も張り直す負荷と遅延を削減でき、リソースの消費も抑えられます。 また、不意に切断されたコネクションを自動的に再接続する機能を導入し、信頼性を向上させています。 これを使って何か作ってみようと言うことで、twitterのリアルタイム検索エンジンを作ってみました。日語を検索できないなど機能は貧弱ですが、プログラム全体がわずか140行に収まっています(クローラ27行、インデクサ48行、クラスタ管理ノード37行、検索クライアント28行)。 新しいつぶやきを受信するたびに、リアルタイムで転置インデックスを作成していきます。インデックスを作成するノ

    140行で作る分散リアルタイム検索エンジン(Twitter Streaming API対応) - 古橋貞之の日記
  • 本を読む Shibuya.pm TT #12で話を聴いた

    11月30日に、Perlプログラマの集まるイベント「Shibuya.pm Technical Talk #12」に参加して、発表を聴いてきました。 中心となったのは「NoSQL vs. NoKVS ライトニングディスカッション」。実際に高速(分散)KVSやRDBMSを開発したり使ったりしている豪華メンバーが壇上に並んで、発表や議論を繰り広げました。 そのほかの発表も含めて、実開発者による濃い話が面白く語られていました。全体的に、アプリの実行速度にこだわった話が多かったのが印象的です。あと、予定の9時ぴったりに終わったのにもびっくり。 1週間たっちゃいましたが、以下、自分の復習として、メモをまとめておきます。 Tatsumaki" I/O bound HTTP clients in web frameworks(miyagawa) Shibuya.pmといえばこの人、miyagawaさんのセ

  • 美しいワープロ - Ommwriter - Radium Software

    Ommwriter.com 昨今のテクノロジーは人から集中力を奪う傾向にある。 画面上に幾つも開かれたウィンドウは,複数の作業の同時進行を可能にするが,それらの作業を切り替える度に,人の思考の流れは中断されている。ウェブやメール,メッセンジャー等のテクノロジーは,コミュニケーションの形を様変わりさせたが,それが集中の妨げになっていることは,それを利用する誰もが自ずから認識しているはずだ。 今後もコンピューターの上で,インターネットの上で,様々なテクノロジーが生まれていくことだろう。果たしてそれらのテクノロジーも,人の集中力を奪い続けることになるのだろうか。 Ommwriter は,その反証となるべく製作されたワードプロセッサーだ。「人の集中力を高めるためにテクノロジーを使うことはできないだろうか?」という問いに対する答えが,このアプリには込められている。 Ommwriter はフルスクリー

    美しいワープロ - Ommwriter - Radium Software
    ziguzagu
    ziguzagu 2009/12/08
  • 科学史上最悪のスキャンダル?! "Climategate" - 化学者のつぶやき - Chem-Station

    一般的な話題 科学史上最悪のスキャンダル?! “Climategate” 2009/12/7 一般的な話題, 化学者のつぶやき, 日常から Climategate, クライメイトゲート, 二酸化炭素, 京都議定書, 国連機構変動枠組条約会議, 温暖化, COP15 投稿者: StarryNight 既に海外のメディアでは大きく取り上げられており、日でも数々のサイトで取り上げられていることなのでご存知の方も多いかと思いますが、去る11月に起きた、「Climategate事件」についてのつぶやきです。(*筆者が尊敬する科学者H.M氏より情報提供・ご協力を得ての執筆です) 長いので先に簡単にまとめると、 ・地球温暖化に関する大御所研究者のこれまでのデータとemail等が流出 ・そのデータから、研究の不正・印象操作が発覚(地球温暖化はCO2が主要因ではない&そもそも温暖化してない?!) とのこと

  • A simple chat server in AnyEvent - unknownplace.org

    Node.js でつくってるやつ をみて同じくらいで書けそうだなと思ったので試しに AnyEvent で書き直してみた。 #!/usr/bin/perl use strict; use warnings; use AnyEvent::Socket; use AnyEvent::Handle; my @clients; tcp_server undef, 7000, sub { my ($fh) = @_ or die $!; my $h = AnyEvent::Handle->new( fh => $fh ); my $leave = sub { my $client = delete $clients[ fileno($fh) ]; for my $c (grep { defined } @clients) { $c->{handle}->push_write("$client->{na