タグ

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

  • Kazuho@Cybozu Labs: キーワード抽出モジュールを作ってみた

    « IIS のログを tail -f | メイン | Lingua::JA::Summarize 0.02 » 2006年04月26日 キーワード抽出モジュールを作ってみた 一昨日、同僚の竹迫さんに、文書内からのキーワード抽出技術について教えてもらっていた時、わざわざ TF-IDF注1 用に別のコーパスを用意しなくても、MeCab だったら生起コストを辞書内に持っているんだから、それを使えばいいのではないか、という話になりました。 竹迫さんがその日のうちに作ってくれたプロトタイプで、アルゴリズムの改善とパラメータのチューニングを行ったところ、十分な品質が出そうなので、書き直して公開することにしました。 普通の Perl モジュールなので、 perl Makefile.PL && make && make install すれば使うことができます (15:50追記: すみません。 MeCab

  • 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: なぜサイボウズ・ラボで働くのか

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

    joan9
    joan9 2008/12/13
  • 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

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

    joan9
    joan9 2008/06/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: 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

  • Google App Engineを使ってみた

    Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 […] Google App Engine(書きにくい。GAEとか略すのかなと予想)のページで、使える状態になっていたのでボタンを押して利用開始。 アプリは3つまで作らせてくれるということなので、まず Application名 “akky” を確保。 これで、http://akky.appspot.com/ が使えるようになる。(Google Appsのように、独自ドメインへのマップもできる予定) まずはローカルでちゃんと動くPythonアプリを作る、ということで、さきほどインストールしたSDK上で作業。 C:> cd “Program FilesGooglegoogle_

    Google App Engineを使ってみた
  • txt2re 文章から対話的に正規表現を作れる支援サービス

    一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作 […] 一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作りたいのかを推測して提案してくれるというサービス。 サンプルで入っているテキストでは、日付(の英語表現)のあとに引用文で英文、という入力。 入れたものが要素ごとに分解された上で、まとまった部分が「文字列」なのか「月」なのか「アメリカの州」なのか、といった推測がされて、選択肢としてリンク表示される。 「ここは月のつもりだった」ということでMonthを

    txt2re 文章から対話的に正規表現を作れる支援サービス
  • 24時間で作られたWigitizeの開発者はiKnow!の関係者 | 秋元@サイボウズラボ・プログラマー・ブログ

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

  • log4ZIGOROu : Gearmanを使ってみた

    daemonの起動 下記のようにdaemonとして起動します。 daemon起動オプションに関してですが、PODの記載は誤りで--daemonizeでは無く--daemonです。 $ sudo gearmand --daemon --pidfile=/var/log/gearmand.pid --debug=1 関数の登録 次にgearmanに実行させたい処理を予め登録し、さらにjob queを待ち受けるworkerを記述します。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use Gearman::Worker; use Storable qw(thaw); use List::Util qw(sum); my $worker = Gearman::Worker->new; $worker->job

  • JSRuby - Javascript による Ruby(っぽい)実装 (nakatani @ cybozu labs)

    OreScript時代の幕開け - yukobaの日記 http://d.hatena.ne.jp/yukoba/20071108/p1 巷で OreScript ブームが巻き起こる中、某所ではさらに局地的に Javascript での言語実装ブーム。 ××さんが ******* を試作したり、西尾さんが python4js を試作したりして、うーむこんなおもしろそうなお祭りは看過できんでわないか。Ruby 成分の多い中谷としてはここはやっぱ JavascriptRuby かっ!? そういえばだれか Javascript でパーサ書いてはったよなあ。それを使わせてもらえば Ruby の構文木をさっくり得られて、ちょこちょこっとインタプリタ書いたら、FizzBuzz くらいなら動くんじゃないの? という思いついてしまったからには、もう作ってみるしか。 というわけで言った者勝ち(笑)の

  • phpspotの人は正規表現について語らないほうがいいのでは | 秋元@サイボウズラボ・プログラマー・ブログ

    「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、 8 Practical PHP Regular Expressions – Web devlopment blogという、今日del.icio.us/popularに出ていた記事の紹介がされている。このサイトの記事はいつもそうだけど、はてなブックマークでも人気で、既に50名を越えるユーザにブックマークされているようだ。 1 メールアドレスチェック $string = "first.last@domain.co.uk"; if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { echo "example 3 successf

  • Kazuho@Cybozu Labs: Perl で並列処理 (using マルチプロセス)

    « DBI::Printf - A Yet Another Prepared Statement | メイン | DBIx::Printf と LIKE 式 » 2007年10月02日 Perl で並列処理 (using マルチプロセス) Shibuya.pm で牧さんが Gungho の話をされたそうで、スライドを拝見しました。Pathtraq への言及もあってうれしい。 で、スライドを読んでいて、HTTP アクセスと HTML 解析/保存処理を分離すべき、となっている点が気になりました。実は Pathtraq (のうち奥が書いている部分) では、Gungho と HTML の解析/保存処理を分離することはしていません。そのかわり、複数のワーカープロセスを駆動することで、スループットを確保しています。分離モデルとマルチプロセスモデル、どちらの手法を採るべきかは、解析/保存処理の重さやエラ

    joan9
    joan9 2007/10/03
  • 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などのブラウザの判別に対応しています。 テキストブラウザの判別

  • UGCと活発なユーザの参加率の関係 | 秋元@サイボウズラボ・プログラマー・ブログ

    ユーザジェネレーテッドコンテンツ(UGC)を企業が活用するには、というマッキンゼイのレポートが出ている(無料・要登録)。 レポートは企業内での情報共有にWikiその他のユーザ参加型ウェブアプリケーションを使う話がメイン。日よりも人の入れ替わりが激しい国の企業では、新しく入ってきた人が既存の情報をいかに早く取得するか、そのために今いる人たちがどれだけわかりやすく情報を整理できるかがより重要になる、という話もわかる。 レポートの中で、インターネット上のUGC(あるいはCGM)について、全体の参加者の何パーセントが、全体のコンテンツの何パーセントを生み出している、という数値をプロットしたグラフが出ていた。 Flickrでは2%の人で9割以上のコンテンツを、YouTubeでも6%が全体の9割を作成している、というようなグラフで、総じてこの手のサイトのほとんどのコンテンツは、せいぜいで10%の参加

    UGCと活発なユーザの参加率の関係 | 秋元@サイボウズラボ・プログラマー・ブログ
  • Kazuho@Cybozu Labs: サーバシグニチャは隠さないのが当たり前

    « Pathtraq バージョンアップのおしらせ - サイドバー表示に対応 | メイン | Perl から MySQL に非同期アクセスする方法 » 2007年09月05日 サーバシグニチャは隠さないのが当たり前 ウェブサーバ(Apache)で、404などのエラーページを表示したとき、ヘッダやページの下にApacheやOSのバージョンが表示されます。こういったサーバ情報をわざわざ表示する必要はありません。 ウノウラボ Unoh Labs: 5分でできるウェブサーバのセキュリティ向上施策 私も何年も前からセミナーではサーバ、モジュールバージョンは隠すようにと言っています。何故こんな事で賛否両論になるのか全く理解できません。 yohgaki's blog - サーバシグニチャは隠すのが当たり前 Server: ヘッダを隠すメリットについての議論はあるようですが、Server: ヘッダを表示すべ

  • Kazuho@Cybozu Labs: 新サービス: Pathtraq リリースのおしらせ

    « swifty - 高速な共有メモリキャッシュ | メイン | Japanize 拡張機能 0.8.9 リリースのお知らせ » 2007年08月08日 新サービス: Pathtraq リリースのおしらせ 日、ウェブブラウザの拡張を通してアクセスログを共有するサービス「Pathtraq」(パストラック) を公開しました。いろいろな使い方ができるサービスなのですが、いくつか紹介したいと思います。 なお、Pathtraq は今朝方まで、サイボウズグループ内で、数十人で試験運用をしていただけなので、データが全然足りません。以下を読んで興味をお持ちいただけた方々には、ぜひインストールしていただいて、一緒に便利なアクセス解析システム、ランキングページを作って行ければと思っております。よろしくお願いいたします。 1. いくつかの使い方 a) 注目の情報を知る Pathtraq - 24時間ランキング

  • TAKESAKO @ Yet another Cybozu Labs: Twitterオフ

    これから参加してきます。 IT戦記 - Twitter オフ会を開催します。 前々から、色んなところでやろうやろうと盛り上がっていたので、 2007年06月15日(金) 19:00 に Twitter ユーザが集う会を開催します 総勢70人ぐらいが集まりそうで、メンバーはかなり濃そうな感じ。 あとで書く。行ってきました。 まず驚いたのが、Twitterオフ参加者の名札がイラスト(カラー写真)入りで一人ひとりちゃんと用意してあったこと。この時点でクオリティ高いです。 紫色の何かを押し付けるオフ 影の仕掛け人が例のオブジェを持参していたので、突発的に写真撮影大会が開催されました。 みなさん、それぞれ思い思いのポーズをとっています。いい顔してますね。 (※公開してマズかった写真があればご連絡下さい) Twitterオフに参加してわかったこと 産総研は広い (中略) みんな良い人達ばかり 突発的に

    joan9
    joan9 2007/06/18
    twitterオフ
  • 秋元@サイボウズラボ・プログラマー・ブログ: reCAPTCHA - キャプチャを利用した人力高性能OCR

    reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっ […] reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっては難しい)クイズのことだ。ある程度ウェブを使っている人なら、ネットサービスの登録時やコメントの書き込み時などに、読みにくく加工されたアルファベットを読まされたりした経験があるだろうと思う。 それらのサイトでは、あなたが人間にしかできないクイズを解いたのを見て、ユーザ登録やコメントの投稿を受け付けたりする仕組みになっているわけだ。文字を読む以外のC