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

  • Kazuho@Cybozu Labs: 実行時間を抑制するモジュール Sub::Throttle を書いた

    « 最適化された最適化手法について | メイン | Q4M バージョン 0.8 をリリースしました » 2008年08月04日 実行時間を抑制するモジュール Sub::Throttle を書いた Sub::Throttle という、実行時間を指定した割合に抑制するモジュールを作りました。実装としては、関数の実行後に適切な時間の sleep を挿入する形になっているので、下のようにループの実行中に挿む形で使うことになります。 # 使用前 for (...) { ... } # 使用後 (負荷を 0.1=10% に抑制) use Sub::Throttle qw/throttle/; for (...) { throttle( 0.1, sub { ... }, ); } Pathtraq の場合は、Disk I/O を引き起こすようなタスクについて、その負荷を抑えるために使用しています。

  • サイボウズ・ラボ : サイボウズ・ラボ、話題のウェブサイトをランキング化するサイト Pathtraq (パストラック) の統計情報取得 API を公開 - 6,000万件のブログやニュースの統計データから検索やランキング取得が利用可能に

    サイボウズ・ラボ、話題のウェブサイトをランキング化するサイト Pathtraq (パストラック) の統計情報取得 API を公開 - 6,000万件のブログやニュースの統計データから検索やランキング取得が利用可能に サイボウズ株式会社 (社: 東京都文京区 代表取締役社長: 青野 慶久 (戸籍名: 西端 慶久) 以下サイボウズ) の連結子会社で、研究開発を専門に行うサイボウズ・ラボ株式会社 (社: 東京都千代田区 代表取締役社長 畑 慎也 以下サイボウズ・ラボ) は、2007年8月8日(水)に開始した話題になっているウェブサイトやブログをリアルタイムにランキング化するサイト「Pathtraq (パストラック)」のアクセス統計データを利用した 開発者向け API を2008年7月23日(水)より公開することを発表いたします。 Pathtraq (パストラック) の概要 「Pathtraq

  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

  • TAKESAKO @ Yet another Cybozu Labs: 1000人スピーカプロジェクト(第1回カンファレンス)に参加

    1/19(土曜日)に開催された1000人スピーカプロジェクト(第1回カンファレンス)に写真係として参加してきました。 当日撮影した写真は、写真共有サイト「flickr」にアップロードしています。 (オリンパス E-330 + ZD 14-54mm F2.8-3.5 / ZD 50mm F2.0 Macro) あと、cojiさんの手によって発表の録画アーカイブはニコニコ動画にもアップロードされています。 ここで使用されていた機材は カノープス TwinPact 100 で、 プロジェクターに投影するためのD-Sub15ピンのVGA出力のアナログRGB入力信号をフックして、中継用PCで画面をキャプチャできる優れものです。 これはぜひ別のカンファレンスでも使用したいと思いました。 今回の準備で反省点だったのは長いケーブルが必要だったことですね。3mでは全然長さが足りないので、VGAケーブル・LA

  • 24時間で作られたWigitizeの開発者はiKnow!の関係者 | 秋元@サイボウズラボ・プログラマー・ブログ

    百式で紹介されていた24時間で作られたドットコムサイト『Wigitize』、Diggで2000票近くを集めていたのでネットサービス作成のサンプルとして面白かったのは間違いない。 Diggされた元記事では、デザイン、ソース管理、Rails/DB開発、HTML, Javascript書き、JSON出力、バックグラウンド処理、API作成、ドメイン名と連絡メール、ホスティングとの契約、公開、SEOまでを手際よく24時間で進めた様子を、使った道具やサービスと一緒に紹介している。 もう一つ面白い話があって、このDominiekさんのブログを読んだり、彼の会社トゥーポイントのサイトを見るとわかるんだけれど、この人はオランダから東京に昨年移ってきており、英語学習SNSとして最近ネットで話題になったiKnow!の開発にも関わっているようなのだ。(顧客リストにiKnow!のセレゴジャパン) 昨年といえば、写真

  • サイボウズ・ラボ : メンバー紹介 : higepon

    メンバー紹介(蓑輪 太郎) ブログ(higepon @ cybozu labs) 2001年 慶應義塾大学 理工学部 物理学科 卒業 某大手企業のシステム開発会社 入社 グループ会社向けの Web サービスの開発を担当 2002年 趣味でオープンソースOS Monaの開発を始める OS開発の知識が一切ない状態から多くの人に助けられ開発を進める 2005年 システム開発会社 退社 株式会社 はてな 入社 RSSリーダー はてなRSS、動画サービス Rimo などの開発 MONA 2ちゃんねる発祥の手作りOSを執筆 Open Source Conference Tokyo/Spring にて Mona の展示 2006年 IPA「未踏ソフトウェア創造事業」採択 採択テーマ「Mona OSにおける次世代Schemeシェルの開発」 オープンソースマガジン連載「ハッカー養成塾」にて「ハッカーへの遠回

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

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

  • GDriveが数ヶ月中にリリースか | 秋元@サイボウズラボ・プログラマー・ブログ

    via Mashable ウォールストリートジャーナルの記事Google Plans Service to Store Users’ Dataによれば、現在の、Google Docs等やGmailのオンラインデータの保存とは別の、パソコンの中のローカルなデータをGoogleのサーバに上げたり、異なるパソコン間や友人のパソコン間で共有できるサービスを準備中との報道。 “GDrive”という名前で以前から噂されているが、Wall Street Journalでは「早ければ数ヶ月のうちにリリース」という情報を得たそうだ。 Google側はノーコメント。 記事では、先行する同種のサービス、Omnidrive.com, Box.net, Xdrive.comm, Window Live SkyDriveなどの名前や価格も紹介されている。 この記事は移転前の古いURLで公開された時のものですブックマー

  • 広告ブロック機能を理由にDigg/Reddit/StumbleUpon等を使わないよう呼びかけるキャンペーンが登場 | 秋元@サイボウズラボ・プログラマー・ブログ

    via digg(笑) Diggなどのソーシャルサイトは、AdBlockなど広告をブロックするツールを紹介したりするし、ブックマークや紹介をされることをサイトの持ち主が個別に禁じる方法を提供していないからボイコットしよう、というサイト。 PHPのコードが提供されていて、要はリファラを見てソーシャルサイトからのアクセスだったらこの禁止サイトに転送する、というもの。もちろんこれでは完全にブロックできるわけでもない。 あれ、どっかで見たネタだな、と思ったら、広告ブロック機能を理由にFirefoxを使わないよう呼びかけるキャンペーンが登場で紹介したのとまったく同じような(よくわからない)理屈と作りだ。 ソーシャルサイトからリンク張られたりブックマークされたりするのが嫌だ、という人もいるみたいだけど、この人はどれだけ真面目に主張してるんだろう。ブロックにかこつけてボイコットサイトのアクセス稼ぎしてる

  • Google Readerの購読者数の不正確さ | 秋元@サイボウズラボ・プログラマー・ブログ

    おとといGoogle Readerがフィード購読者数を表示するようになったことをご紹介した。 いろいろなブログで、有名なブログの購読者数をチェックして表にしたりしているが、Mashableではこの購読者数が正しいのかどうか、ということを検証し、面白い結果を出している。 Google Readerの利用開始時には、Googleがジャンルごとにフィードをセットでお薦めしてくれるようになっている。このお薦めフィードに入っていると、当然購読者集めには有利となる。 面白いのは、このお薦めフィードの中に、存在しないフィードや、ずっと前に移転してしまった古いサイトのフィードが混ざっていたことだ。たとえば、「スポーツ」セクションにあるフットバッグというマイナーなスポーツ(参考: 日フットバッグ協会)のフィードは、なんと74,043人に読まれていることになっているが、このフィードは存在せず、新着記事も読め

  • TAKESAKO @ Yet another Cybozu Labs: 続イメージファイト - HTML 2.0 New Browser Detection

    Shibuya Perl Mongersテクニカルトーク#8 で発表した「続イメージファイト」の資料を SlideShare で公開しました。 Shibuya.pm#8 続イメージファイト - HTML 2.0 New Browser Detection JavaScriptCSS Hacksを一切使わずにHTMLでブラウザを判別するハックの紹介です。 HTML 2.0 - Browser detection [3] ブラウザ判別のデモのページにアクセスすると、使っているブラウザの画像が表示されます。 このimgタグのsrc属性はfirefox2.0、firefox1.5、その他のGeckoエンジンを搭載したブラウザ、Safari2、Safari3、Opera、ie、w3m、lynxなどのブラウザの判別に対応しています。 テキストブラウザの判別

  • Kazuho@Cybozu Labs: ウェブサービスのためのMutex - KeyedMutex

    « キャッシュシステムの Thundering Herd 問題 | メイン | DBI::Printf - A Yet Another Prepared Statement » 2007年09月27日 ウェブサービスのためのMutex - KeyedMutex 昨日、以下のように書いたのですが、両者のうち2番目のアプローチを実現する Perl モジュール KeyedMutex を作成しました。 サーバにおける Thundering Herd 問題は良く知られていると思いますが、類似の現象はキャッシュシステムでも発生することがあります。 (中略) 対策としては、以下の2種類の手段があります。 バックエンドへの同一リクエストを束ねるような仕組みを実装する エクスパイヤ以前の残存時間が一定以下となった段階で、キャッシュエントリのアップデートを開始する これらの手法には、それぞれメリットとデメリッ

  • Webページの本文抽出 (nakatani @ cybozu labs)

    Webページの自動カテゴライズ の続き。 前回書いたとおり、パストラックで行っている Web ページのカテゴライズでは、Web ページの文抽出がひとつの鍵になっています。今回はその文抽出モジュールを公開しつつ、使っている技法をざっくり解説などしてみます。 モジュールの利用は至極簡単。require して analyse メソッドに解析したい html を与えるだけ。文字コードは UTF-8 です。 【追記】大事なこと書き忘れ。モジュールは Ruby1.8.5 で動作確認していますが、特別なことはしていないので、1.8.x なら動くと思います。 $KCODE="u" # 文字コードは utf-8 require 'extractcontent.rb' # オプション値の指定 opt = {:waste_expressions => /お問い合わせ|会社概要/} ExtractCont

  • TAKESAKO @ Yet another Cybozu Labs: ITpro Challenge!でニコLT発表してきました

    2007年9月7日(金)東京ドームホテルB1Fで開催された「ITpro Challenge!」に行ってきました。 先着70名までという超プレミアムなイベントでしたが、ライトニング・トークスでの発表の機会をいただき、私も参加することができました。 東京を直撃した台風により多摩川がバッファオーバーフローしていたにもかかわらず、会場は満席で大盛況でした。 私がApacheモジュールを書く理由「wafful.org」 LTの発表に使用したスライドのサムネイルを一部公開します。 発表内容を全部録画したデータは後日公開されると思いますので、時間の関係で今回詳しく話せなかったこととして、 Apacheのフィルタモジュールを書くときに参考にした情報について補足しておきたいと思います。 Apache2から用意されたライブラリ APR (Apache Portable Runtime) そのもののチュートリア

  • 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 (&プロセス間通信) してるんですね。変なコメントしてごめんなさい忘れてください。って、それだけではなんなので... ここから題。 私はそういうケースに遭遇したこ

  • 1