タグ

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

  • 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

  • txt2re 文章から対話的に正規表現を作れる支援サービス

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

    txt2re 文章から対話的に正規表現を作れる支援サービス
  • 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 ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに

    netfan
    netfan 2008/03/13
  • Kazuho@Cybozu Labs: Tritonn (MySQL+Senna) の join を高速化

    « setlock を使って cron をぶんまわす方法 | メイン | Range Coder の終了処理 » 2008年02月05日 Tritonn (MySQL+Senna) の join を高速化 自分の利用形態において、Tritonn の処理を最適化するパッチを書きました。具体的には、2種類の最適化を行いました。ひょっとするとバグがあるかもしれませんが、興味がある方は、以下のパッチ (tritonn-1.0.9用) とあわせてごらんください。 1. 全文索引内にプライマリキーを格納 SQL クエリを最適化する際、アクセスしたい全カラムを格納したインデックスを作成することで行データへのアクセスを抑止して速度を稼ぐ、というのは定石のひとつです。しかし、MySQL の全文索引 (フルテキストインデックス) では、他のカラムと組み合わせた複合キーを作成することができません。このことが、T

  • Kazuho@Cybozu Labs: Japanize - Internet Explorer に対応しました

    « CGI::Application 用にディスパッチャ兼パーマリンクジェネレータを書いてみた | メイン | Pathtraq サービス中断のお知らせ » 2007年11月16日 Japanize - Internet Explorer に対応しました 日、Internet Explorer 用の Japanize 拡張機能 (プラグイン) を公開しました。Japanize のトップページからダウンロード・インストールしていただくことが可能です。 Japanize は、インターネット上の様々なウェブサイトの UI を翻訳 (ローカライズ) するウェブサービスです。2005年8月の公開以来、300人以上の翻訳者による延べ27,000回以上の翻訳データ投稿の結果、翻訳データサイズは4.5MBを超えるまでになりました。Flickr! や Twitter といった人気の英語サイトを含む550以

    netfan
    netfan 2007/11/20
    Japanize
  • 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

    netfan
    netfan 2007/11/02
    スクレイピング、本文抽出。
  • Kazuho@Cybozu Labs: 新サービス: Pathtraq リリースのおしらせ

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

  • throw new CybozuLabsException() - EthnaでNet_URL_Mapperを使う

    PEARで公開されているURLハンドリングライブラリNet_URL_Mapperがシンプルで非常にわかりやすかったのでEthnaで使ってみました。 すでにEthnaの最新機能であるUrlHandlerを使っている人であればNet_URL_Mapperの組み込みは非常に簡単です。 プロジェクト内の[appid]_UrlHandler.phpで、require_once 'Net/URL/Mapper.php';した後、以下のメソッドをクラス内に追加するだけです。 function requestToAction($http_vars) { if (isset($http_vars['__url_handler__']) == false || isset($this->action_map[$http_vars['__url_handler__']]) == false) { re

    netfan
    netfan 2007/04/23
    ethna
  • throw new CybozuLabsException() - libusbを使うPHP Extensionを作りました

    pearパッケージになっているので、pecl install usb-0.0.1.tgzでインストールできます。できますが、libusb関係のライブラリやソースが必要なので(ubuntuだったら)aptitude install libusb-devするなどして用意してください。

    netfan
    netfan 2007/04/18
    USB
  • throw new CybozuLabsException() - 今日のPEAR:HTTP_Requestでtwitterのstatusをアップデート

    自分の場合あまりにも日常的に使っていてわざわざ解説しなくてもみんな知ってるだろと思っていたのですが、そんな事もないみたいなのでHTTP_Requestを紹介します。 HTTP_RequestはシンプルなHTTPアクセスを行うライブラリ。 PHPの場合、Webサイト上のデータをひろってくる場合、php.iniでallow_url_fopenが許可されていれば以下の一行で拾う事ができます。 file_get_contents('http://labs.cybozu.co.jp/'); が、POSTとなると話は別で一行でえいや。というわけにはいきません。fsockopenうんたらかんたらもにょもにょとやるんでしょうか。私は面倒な事はしたくないのでHTTP_Requestを使います。 以下のコードはTwitterの自分のステータスを変更するコードです。 <?php require_o

    netfan
    netfan 2007/04/03
    pear
  • throw new CybozuLabsException() - vimでPHPのファイルを開いた時に自動で折り畳みを行う

    Webサービス日記 - php.vim: php_folding=1で、vimPHPファイルを開いた時にクラスや関数を自動的に折り畳む方法が紹介されています。 通常、折り畳みを使うには{{{と}}}で囲む必要があるのですが、vimrcに let php_folding=1 と入れるだけでクラスやクラスのメソッド、関数が自動的に折り畳みに対応します。他にもいろんなオプションがあります。:h phpphp.vimのオプションの一覧を見る事ができます。

    netfan
    netfan 2007/03/23
  • Kazuho@Cybozu Labs: JavaScript から Flash の便利な機能を使う方法

    « Comet の正しい使い方 | メイン | キーワード抽出のススメ (Lingua::JA::Summarize がアップデート) » 2007年03月14日 JavaScript から Flash の便利な機能を使う方法 先月・今月と新しいメンバーが加わったサイボウズ・ラボですが、いま社内でfont-familyが密かなブームです。ということで、ブラウザで使用できるフォント名一覧をJavaScriptで取得する方法について調べてみました。 (中略) ■ 2. Flash の TextField.getFontList() を JavaScript から呼び出す (TAKESAKO @ Yet another Cybozu Labs: JavaScriptフォント名一覧を取得する3つの方法) JavaScript から Flash のちょっとした機能を呼び出すためだけに、毎回 Fla

  • 1