タグ

ブックマーク / labs.cybozu.co.jp (26)

  • TAKESAKO @ Yet another Cybozu Labs: 4/22(水)Shibuya.pm#11開催します

    Shibuya.pmテクニカルトーク#11を2009年4月22日(水)に開催します。 とりあえず、仮のプログラムですが、告知&申し込みフォームを公開しました。 テーマ - "no Perl; use x86;" 日時 - 2009年4月22日(水) 18:30-21:00 (18:00 開場) 会場 - グラントウキョウサウスタワー23F リクルート社サウスホール 住所 - 東京都千代田区丸の内1-9-2 (JR東京駅 八重洲南口すぐ) 料金 - 無料 事前登録 - 申し込みフォームより受付開始しています(定員200名) http://shibuya.pm.org/blosxom/techtalks/200904.html 会場はリクルートMTLの川崎さんにお世話になりまして、机付きの200人規模の大きな会場を使わさせていただくことになりました。ありがとうございます。 ちなみに今回のプロ

    typester
    typester 2009/03/27
    えーw >ちなみに今回のプログラムは XS Nite のときよりも低レベルになる予定です。正規表現やPerlに詳しくない方でも安心して聞ける内容になると思います。
  • Kazuho@Cybozu Labs: SSD (フラッシュメモリ) のベンチマークと選定基準

    ベンチマークに使用したのは、一般的な HDD、高速性で有名な Intel の SSD、ネットブック (DELL Inspiron Mini 9) の内蔵 SSD (STEC 製, 32GB)、および SanDisk の SDHC カード (SanDisk Extreme III) です注。 この表を見て2つの SSD を比較すると、読み込みパフォーマンスの差がそれほど大きくないことに気づきます。また、SD カードの読み込み速度も、HDD を大きく上回っています。つまり、ランダムリードについては、メーカーや SSD 間の差は、あまり大きくない、ということになります。 一方で、書き込みパフォーマンスについては、非常に大きな差があります。X25-M と STEC の SSD の差は、実に 50 倍にのぼります (SSD の書き込みバッファをオフにした場合の値はこちらの表を参照のこと)。また、SD

    typester
    typester 2009/02/06
  • Kazuho@Cybozu Labs: Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性

    « MySQL の order by 〜 limit を高速化する方法 | メイン | MySQL Conference & Expo 2009 で Q4M の話をします » 2008年12月16日 Text::MicroTemplate - テンプレートエンジンのセキュリティと利便性 先月開催された Shibuya.pm #10 でプレゼンテーションがあった MENTA や NanoA では、Mojo 由来のテンプレートエンジンを拡張して使用してきたのですが、Perl モジュールとして独立させるべきだよね、ということになり、このたび Text::MicroTemplate として CPAN にアップロードしました。 そのことを告知するとともに、作業の過程で興味深く感じた、テンプレートエンジンのセキュリティと利便性に関する話題をブログに書いておこうと思います。 テンプレートエンジンのエスケ

  • Kazuho@Cybozu Labs: IPAフォーラム 2006 での講演スライド

    « JavaScript のベンチマーク | メイン | Mozilla Firefox の JavaScript インタプリタが特定文字を読み落とす件 (JSON のエスケープ) » 2006年10月31日 IPAフォーラム 2006 での講演スライド 先日 (2006年10月24日) に開催されたIPAフォーラム2006 (OSS コンファレンス) にて「コミュニケーションソフトウェアを創るということ ~OSSの可能性」というタイトルでお話をさせていただきました。賛成反対を含め、刺激的な話をしようと思ったのですが、短すぎたのは失敗 orz その際に使用したスライドをアップします。よろしければごらんください。

  • Kazuho@Cybozu Labs: なぜサイボウズ・ラボで働くのか

    « ウェブサービスの SSD 化について話してきました | メイン | MySQL の order by 〜 limit を高速化する方法 » 2008年12月08日 なぜサイボウズ・ラボで働くのか 12月6日に大阪で開催されたサイボウズの採用説明会で、話をさせていただきました。大学生の方々向けということで、あまり技術面に振ったプレゼンをするのもどうかと悩んだ末、自分が、なぜサイボウズ・ラボで働いているのか、ということを、大学生の頃から振り返ってみることにしました。 ふだん、しなれていない類いの話なので、うまく伝わったか、正直不安です。ただ、自分自身にとっては、何が好きなのか、何がやりたいのか、ということを改めて見つめ直すいい機会になりました。また、来場者の方々といろいろ話をできたことも、自分にとっていい刺激になったと感じています。 ですので、ご来場いただいた方々には、サイボウズに興味をも

  • TAKESAKO @ Yet another Cybozu Labs: Shibuya.pm#10お疲れ様でした

    Shibuya Perl Mongersテクニカルトーク#10無事、終了いたしました。 雨の中にもかかわらず、サテライトの会場にお越しいただいた皆様、 現地の会場までお越しいただいた皆様、当にありがとうございました。 今回は福岡・大阪・京都・御茶ノ水などの複数の箇所での パブリックビューイングも初めて公式に開催しましたが、 ustream.tv の中継もトラブルもなくうまくいき(cojiさんありがとうございました) 気付いたときは視聴者数が 200 viewers を越えていました。 各サテライト会場でホスト役を務めてくださった会社の皆様(ネットエージェント様、はてな様、Fusic様、SST様)、当にありがとうございました。 また、いつも素晴らしい会場を無償で貸し出していただいているIIJの皆様(今回は特に堂前さん)、当にお世話になりました。 当日のプログラムはこんな感じで… 第一部

  • Kazuho@Cybozu Labs: ウェブサービスにおけるダメージコントロール (MySQL のスロークエリを自動的に kill する方法)

    « ウェブサービスにおける SSD 導入にむけて〜検索サービスの可能性 | メイン | ウェブアプリケーションのインストーラジェネレータ » 2008年11月04日 ウェブサービスにおけるダメージコントロール (MySQL のスロークエリを自動的に kill する方法) 適切な設計によって、信頼性の高いソフトウェアやサービスを構築することが重要なのは、言うまでもないことです。一方で、なんらかの原因で問題が発生した際に、障害を局所化し、損害を小さくい止める「ダメージコントロール」という概念もあります。ウェブサービスの場合も、特に検索や集計といった、計算量がクエリの種類によって大幅に異なるようなケースでは、次善の策として後者の手法が有効に働く場合もあるかと思います。 ともかくそういうわけで、MySQL のスロークエリを強制終了するようなタスクを書きやすくする Perl モジュール MySQL

  • Kazuho@Cybozu Labs: ウェブサービスにおける SSD 導入にむけて〜検索サービスの可能性

    « Filter::SQL でデータベースを叩くワンライナーを簡単に書く方法 | メイン | ウェブサービスにおけるダメージコントロール (MySQL のスロークエリを自動的に kill する方法) » 2008年10月28日 ウェブサービスにおける SSD 導入にむけて〜検索サービスの可能性 実際に試してみた結果については、ウェブサービスの SSD 化について話してきましたをご参照ください。 検索エンジンや小さな行が多いデータベース等で使用する目的での SSD (Intel X25-M) のベンチマーク結果については、Kazuho at Work: Benchmarking SSD for MySQL をご覧ください (InnoDB の話をしていますが、Senna / Tritonn でも基的に同じ) Sun が SSD 製品の投入を表明 (マイコミジャーナル) したり、Google

    typester
    typester 2008/10/29
    ランダムリードが重視される局面ではUSBメモリですらHDDよりはやかったりするらしい。へぇ
  • Kazuho at Work: Greasemetal version 0.2 released

    I have just uploaded version 0.2 of Greasemetal to greasemetal.31tools.com. I originally intended to add management UI for userscripts in the second release, but hearing the users' request for improved compatibility with Greasemonkey, I changed my mind. The main focus of the release is to improve compatibility with Greasemonkey. The changes from version 0.1 are as follows. Improved Compatibility w

  • Kazuho@Cybozu Labs: MicroblogCon1 の報告と Q4M 0.8.1 リリースのお知らせ

    « Q4M バージョン 0.8 をリリースしました | メイン | Q4M 0.8.3 をリリースしました (含 FreeBSD サポート) » 2008年08月30日 MicroblogCon1 の報告と Q4M 0.8.1 リリースのお知らせ 先日 (8/27 水) 、弊社を会場にして、マイクロブログのサービス開発やそのミドルェアに関するカンファレンス「MicroblogCon1」を開催いたしました。スピーカーの方々、お越しいただいた方々、ありがとうございました (当日の模様は coji さんが撮影して中継、techtalk.jp にて公開してくださっています。 ありがとうございます) 。奥はその中で、Q4M の概論から入門的な話をしたので、興味のある方はスライドをご覧ください。

  • Kazuho@Cybozu Labs: MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話

    « フレンド・タイムライン処理の原理と実践 | メイン | MySQL の ORDER BY を高速化 » 2008年06月12日 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 フレンド・タイムライン処理の原理と実践 の続きです。 先のエントリでは、プルモデルの速度が当初予測していたよりも遅かった (というより SQL レイヤでのオーバーヘッドが大きそうだった) ので、MySQL Internals メーリングリストで質問したりしながら、C++ で直接 InnoDB にアクセスするようなコードを書いてみました。 タイムライン構築速度 タイムライン/秒 SQL そしたら、10倍以上高速に! ベンチマークを perl ベースのものから mysqlslap に変えたのですが、プッシュモデルの 2/3 の速度が出ています。これなら、データサイズが約 1/10 にな

  • Scheme 処理系 「Mosh 0.0.1」 をリリースしました (higepon @ cybozu labs)

    これは何か? R6RSという Scheme の新しい言語仕様に準拠することを目指している高速な Scheme インタプリタです。 ※インタプリタの名称を変更しました。 何が出来るの? PerlRuby で行っているような実用的なプログラミングができます。(現時点ではもちろん機能は限られますが) 例えばサンプルとして Mosh で書かれた Wiki が動いています。 なぜ Scheme なの? Scheme という言語が柔軟で素晴らしい言語だからです。 Scheme について知りたい方は、計算機プログラムの構造と解釈やプログラミングGaucheなどを読まれると良いでしょう。 ダウンロードとインストール Google Code からソースコードをダウンロードして下さい。 ソースコードのビルドにはGauche が必要です。 ./configure make make check make

  • Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件

    « Pathtraq 最新ランキング ガジェットを公開しました | メイン | Q4M (Queue for MySQL) 0.3 リリース » 2008年03月10日 高速なCometサーバを書いてみた件 もう昨年の2月になりますが、Comet について調査を行いました。その際の成果をまとめたスライドは既に公開していた (Comet の正しい使い方) のですが、同時に実際に作ってみた実装についても、オープンソース化することとなりました。コードは CodeRepos に置いておきますので、どうぞご覧ください。 (Revision 7754: /lang/perl/fastr) 使い方は example ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに

  • 秋元@サイボウズラボ・プログラマー・ブログ: Google Social Graph API登場 - 公開情報から人のつながりを探せるように

    Google Social Graph APIに戻って「Googleのウェブ検索」を説明するなら、ウェブにあるページとページのリンク関係を大量に集めて、単語を入れたら関連するページを返す、ということになるだろう。 今日新しく発表されたGoogle Social Graph APIは、リンクの中でも特に「サイトと人、人と人の関係」が書かれたリンクを収集して検索できるようにしたAPIだ。 APIを使ったサンプルがあるのでこれを使ってみる。My Connectionsというサンプルでは、ブログや自分のプロフィールが載ったページのURLを入れる(複数あれば改行で区切る)と、過去にブログやSNSなどで自分が登録した情報から、関係のあるウェブサイトのURLや、知人のページを取得して表示してくれる。 人間関係やサイト間の関係はどこから取っているのか、というと、これはXFNやFOAFといったmicr

    秋元@サイボウズラボ・プログラマー・ブログ: Google Social Graph API登場 - 公開情報から人のつながりを探せるように
  • Kazuho@Cybozu Labs: setlock を使って cron をぶんまわす方法

    « データベースをコピーするモジュール DBIx::Replicate | メイン | Tritonn (MySQL+Senna) の join を高速化 » 2008年01月30日 setlock を使って cron をぶんまわす方法 事前計算や DB 再構築を手軽に実行するのに cron は便利ですが、タスクのまわし過ぎによるサービスのパフォーマンス低下や実行順序の制御を別途行う必要があります。自分は、そのためのツールとして、daemontools の setlock コマンドがお気に入りです。setlock は、flock を用いて、タスクの待機や実行中止を制御することのできる、とても小回りのきくプログラムです。 1-59/* * * * * /usr/local/bin/setlock -nx /tmp/precompute.lock /usr/local/bin/setlock

  • Kazuho@Cybozu Labs: Q4M - MySQL 上で動作するメッセージキュー

    « ウェブアプリケーションにおけるHDDの正しい使い方 | メイン | Pathtraq リニューアルのおしらせ (リアルタイム検索機能の追加ほか) » 2008年01月15日 Q4M - MySQL 上で動作するメッセージキュー 数年来ずっと「RDBMSに統合されたメッセージキューがほしい」と言ってきたわけですが、昨年末にストレージエンジンをプラグインとして開発できる MySQL 5.1 が RC になっていることに気づき、自分で作ってみました。 Q4M (Queue for MySQL) は MySQL 5.1 のプラガブル・ストレージ・エンジンとして動作するメッセージキューであり、堅牢・高速・柔軟であるよう設計されています。昨年12月遅くに開発が開始され、まだ非常に原始的ですが、かなり高速に動作します。 q4m.31tools.com 自分の英語を日語訳するというのも変なものですが

  • Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 (nakatani @ cybozu labs)

    « MyMiniCity 日語化 | メイン | JSRuby から jQuery を使う ( Javascript 連携 ) » Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 あけましておめでとうございます。 1月からサイボウズ・ラボのオフィスが引っ越しました。新年から気分も新しくぶりぶり仕事します。よろしくです。 というわけでちょっとずつ作っていました Javascript で実装した Ruby インタプリタの "JSRuby" を一区切り付けるべくバージョン番号を付けてリリースしました。 JSRuby Project Page (CodeRepos) http://coderepos.org/share/wiki/JSRuby JSRuby Test Page http://labs.cybozu.co.jp/blog/naka

  • Kazuho@Cybozu Labs: ウェブアプリケーションにおけるHDDの正しい使い方

    « ディスクが1回転する間に複数回 fdatasync する方法について | メイン | Q4M - MySQL 上で動作するメッセージキュー » 2008年01月04日 ウェブアプリケーションにおけるHDDの正しい使い方 データベース等のソフトウェアは一般に、停電やOSのクラッシュ時にデータが破壊されないよう、HDD へデータ保存が完了したか確認しながら処理を行うようになっています。その目的を果たすためにどのような API が OS によって提供されているか、少し勉強し直すことにしました。 下表のうち、赤い部分がデータの永続性が保証されない危険な手法、青い部分が安全な手法です。したがって、各行において出来るだけ左側の (高速側の) 、そして言うまでもなく青い色の同期手法を使っていることが望ましいということになります。 OS openモード HDD または RAID 内の書込先 キャッシュ

  • Kazuho@Cybozu Labs: CGI::Application 用にディスパッチャ兼パーマリンクジェネレータを書いてみた

    « djbdns にパッチをあてて Anti-DNS Pinning 対策 | メイン | Japanize - Internet Explorer に対応しました » 2007年11月14日 CGI::Application 用にディスパッチャ兼パーマリンクジェネレータを書いてみた パーマリンク生成とディスパッチャが同居しているようなウェブアプリケーションのフレームワークはないのかな、という話を同僚の山口さんに振ったところ、「以前 Catalyst::Plugin::BuildURI というモジュールを書いたよ」という答えがかえってきました。でも今更 Catalyst ベースに書き直すのもなぁ、ということで、青い芝を横目で眺めつつ、CGI::Application 用のディスパッチャ兼パーマリンクジェネレータを書いてみました。 使い方は以下のような感じです。各モジュールの先頭で regi

    typester
    typester 2007/11/15
    BuildURI? それ$c->uri_forとか$c->req->uri_withとかでできるよ
  • Kazuho@Cybozu Labs: Perl から MySQL に非同期アクセスする方法

    « サーバシグニチャは隠さないのが当たり前 | メイン | swifty-0.02 と Perl バインディング » 2007年09月10日 Perl から MySQL に非同期アクセスする方法 mod_perl のプロセス内でやるのに POE でイベントループ回せ、ということ? もうちょいkwsk! > b:id:kazuhooku naoyaグループ - naoyaの日記 - 非同期SQLサーバ エントリ全体の趣旨はさておき、ソケット通信を非同期化するためにまた別のソケット通信を行うという使用例に違和感を覚えたのですが、回避策としてブクマコメントで提示した POE::Component::EasyDBI も内部で fork (&プロセス間通信) してるんですね。変なコメントしてごめんなさい忘れてください。って、それだけではなんなので... ここから題。 私はそういうケースに遭遇したこ

    typester
    typester 2007/09/10
    非同期でDBアクセス。おお。POEコンポネ化してほしす