タグ

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

  • TAKESAKO @ Yet another Cybozu Labs: LL魂お疲れ様でした[LLSpirit]

    LL魂、参加されたみなさんお疲れ様でした。みなさんのお陰で無事イベントを終了することができました。ありがとうございました。 前半の20枚だけですが、Flickrに写真をアップロードしました。 詳しい感想はのちほど。いろいろ新しい刺激を受けました。 とりいそぎ、Lightning Talksの発表資料(※画像はイメージでしたバージョン)を公開します。 イメージファイト! - 画像に埋め込まれたPHP・XSS攻撃コードと戦う5つの方法 - 11 竹迫良範(Shibuya Perl Mongers) http://wafful.org/mod_imagefight/ImageFight-LL2007.ppt 先日、PHPの攻撃コードが隠された画像ファイルが、大手ホスティングサイトで発見されたとの報道がなされました。GIF,PNG,JPEG,BMP形式の画像ファイルには、PHPのRFI攻撃で使用さ

  • Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)

    Javascript で diff というのはいくつか試された例はあるようですが、まだこれといった決定打は出ていない様子です。 実は diff は見た目ほど軽い処理ではないので、Javascript にやらせるのはこれが結構大変…… diff の計算量は、おおざっぱに言うと比較対象の要素数の二乗に比例し(実際にはそれより小さくすることができるのですが、まあ話のイメージとして)、かつメモリを大量に消費するので、バッチ的な処理に最適化されていない Javascript にはどうしても荷が重いものとなってしまいます。 比較対象の要素数を減らせば当然計算量は減りますが、行単位で比較してもあまり嬉しくない(わざわざ Javascript で処理するということは自然文が対象と思って良いでしょう)。最小の文字単位だとギブアップ。 ということは形態素解析で分かち書きして、単語単位で diff するのが J

  • Kazuho@Cybozu Labs: Cache::Adaptive を簡単に使う方法

    « FizzBuzz - Perl 使って50バイト | メイン | Japanize - ウェブサイトの高速化 » 2007年05月21日 Cache::Adaptive を簡単に使う方法 同僚の ZIGOROu こと山口さんが、「まだ CGI::Application 使ってるの〜?」とか言いながら、CGI::Application::Plugin::Cache::Adaptive を作ってくれました。このモジュールを使えば、ハンドラに属性を追加するだけでキャッシュを有効にできます。これは便利! ついでに私も、自分が使う(であろう)フィードバック関数をパッケージ化したモジュール Cache::Adaptive::ByLoad を作りました。 これらを使うことで、従来のコードはそのまま、ちょっとコードを追加するだけで、簡単に負荷調節機能付きウェブアプリケーションを開発することができます。

  • Kazuho@Cybozu Labs: 負荷に応じてキャッシュを自動調節する Perl モジュール

    « Re: PoCo::Client::HTTP が勝手に文字コードを変えてしまう件 | メイン | Cache::Adaptive の使い方 » 2007年05月09日 負荷に応じてキャッシュを自動調節する Perl モジュール Cache::Adaptive の使い方に続く 最近かりかりとサーバサイドの実装をしています。修行の成果、だいぶ複雑な SQL も書けるようになってきました。DBMS の気持ちを考えながら SQL 最適化するのは楽しいですね。しかし、いくら SQL を工夫したところでパフォーマンスの限界はあるわけです。 となると、採りうる選択肢はスケールアウト・スケールアップ・キャッシングの3つになります (もちろん組み合わせも可)。ただ、需要予測の最大値に基づいて機材を確保するのもあまり効率的とは言えませんし、リリース直後に徹夜でパフォーマンスのチューニングをするのもイヤです

  • TAKESAKO @ Yet another Cybozu Labs: Multi-USB::MissileLauncher for Win32

    YAPC::Asia 2007 Tokyo で大人気だった USB::MissileLauncher をマルチに制御するパッチを作りましたので公開します。 Multi-USB::MissileLauncher for Win32 binary package http://namazu.org/~takesako/pub/usblauncher-20070501.zip ■ ctlmissileコマンド使用法 Usage: ctlmissile [ up | down | left | right | fire | stop ] [ 3000] オリジナルからの変更点 http://www.earth.li/~noodles/files/usblauncher-0.0.3.tar.gz からの変更点 * ctlmissile.c.patch コンパイルオプション -DLINUX -DWIN

  • 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

  • TAKESAKO @ Yet another Cybozu Labs: KENTさんと対談しました

    先日、日経ソフトウエア様の対談企画で、 :: KENT WEB - CGIスクリプト :: で有名な KENT さんと対談させていただきました。 このような貴重な機会を与えてくださった編集部の英断に感謝いたします。 KENTさんの最新著書:最速攻略 CGI/Perl 作り方入門「はじめに」より もし、他人が書いたPerlプログラムのコードを見て、残念なことに その未熟さを批評する人がいたとしたら、実は彼自身のほうが未熟です。 彼はPerlが何たるかを理解していないからです。 この言葉の書かれているページにKENTさんご人のサインをいただきました。ありがとうございます! Perlの哲学でもあるTMTOWTDI (There's more than one way to do it.) のスローガンは Perlのコミュニティの中でも浸透していて、 There's more Dan the w

  • Kazuho@Cybozu Labs: 独自ドメインにおける DNS の設定

    « 「ITアーキテクト」誌のインタビュー | メイン | JavaScript で非同期処理 » 2006年11月29日 独自ドメインにおける DNS の設定 レンタルサーバを使って独自ドメインのウェブサイトを立ち上げる際、悩むのが DNS の設定です。王道としては、レンタルしたサーバでプライマリサーバを立ち上げセカンダリはどこかのサービスのものを使用するというパターンと、まるごと Dynamic DNS のようなサービスに頼るというパターンがあると思います。しかし、他の選択肢も存在します。DNS は学習曲線が長そうなので近づかないようにしてきたのですが、今回、mylingual.net というドメインを取得したので、いろいろ試してみることにしました。 1. DNS サーバは2つ以上必要なのか 独自ドメインで運用するサーバが一台のみなのであれば、その1台でウェブサーバと DNS サーバを兼

    overlast
    overlast 2006/12/02
  • 秋元@サイボウズラボ・プログラマー・ブログ

    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.

    秋元@サイボウズラボ・プログラマー・ブログ
  • TAKESAKO @ Yet another Cybozu Labs: Shibuya.js Technical Talk #2 感想リンク集

    Shibuya.js Technical Talk #2 に参加してきました。 とりあえず Plagger で収集した Shibuya.js の感想・反応リンク集をここに置いていきます。 (気が向いたときにまた更新するかもしれません) ■参加者オフレポ: arclamp.jp アークランプ: Shibuya.js Technical Talk #2 Devel::Bayside - Shibuya.JS Technical Talk #2 ma2の日記 Shibuya.js TECHNICAL TALK #2 リポート blog.8-p.info: Shibuya.js Technical Talk #2 Shibuya.JS Technical Talk #2 - pur*log drry @-> Shibuya.js Technical Talk #2 Practice of Prog

  • Kazuho@Cybozu Labs: DNS ラウンドロビンと高可用性 (High Availability)

    « brainf*ck でマジメに素数探索 | メイン | Brainf*ck で動的リスト » 2006年06月29日 DNS ラウンドロビンと高可用性 (High Availability) ウノウラボ Unoh Labs - ベンチャー流サーバ構築のススメ(ネットワーク編) について。 おもしろく読ませていただきました。また、監視系を導入せずに自律的に動作させようという発想も大好きです。 でも、 DNSは各回線の内側に設置しておきます。例えば上図のような場合、回線A側のDNSは回線AのIPアドレスを返すようにして、回線B側のDNSは回線BのIPアドレスを返すようにします。こうするとどちらかの回線が切れたときは切れたほうの回線のDNSにアクセスできなくなるので、自動的に生きている方の回線に接続されるようになります。 (ウノウラボ Unoh Labs - ベンチャー流サーバ構築のススメ(

  • Kazuho@Cybozu Labs: Captcha Plugin/ja について

    « PERL5WEBDB で Movable Type デバッグ | メイン | C で tail に queue は不要 » 2006年06月23日 Captcha Plugin/ja について Ogawa::Memoranda さんが Captcha Plugin を公開されているということを知りました。 どういう方式でやっているのかな、と思って拝見しました (きれいな構成だと思いました) が、MD5 の使い方に問題がありそうです。 具体的に言うと、検証コード=MD5(CAPTCHA CODE) のように計算しているので、CAPTCHA CODE の MD5 値を予め計算しておくことで、任意の検証コードに対する正しい CAPTCHA CODE が判明してしまう、という点が問題です。 CAPTCHA に使用されるのが5文字の英数字であれば、1G 弱のテーブル注を用意すれば一瞬で解析できて

  • Kazuho@Cybozu Labs: Re: はてな認証 API

    « はてな認証 API | メイン | Hash ≠ MAC » 2006年05月06日 Re: はてな認証 API naoya さんありがとうございます、ということで、「認証APIのメモについてのレス」への返答です。 2006/5/7 追記: 1) で述べた MD5 による api_sig の偽装が可能であることを確認しました。この偽装を用いた攻撃は、auth.json および auth.xml については、1) に述べたとおり成功しません。認証リンクについては、仕様として任意のパラメータをハンドリングできる必要があるので、攻撃が成立してします (攻撃者がパラメータを追加することができる)。 よって、認証リンクの署名機能は壊れている、と言わざるを得ないように思います。 3) パラメータ指定の手法について 先にこちらから。 パラメータ指定は先日サポートしました。http://auth.ha

  • Kazuho@Cybozu Labs: Perl Monger への道は遠い

    « Lingua::JA::Summarize 0.02 | メイン | Lingua::JA::Summarize 0.03, 0.04 » 2006年05月02日 Perl Monger への道は遠い Lingua::JA::Summarize のリリースで、弾さん、Charsbar さんをはじめ、いろいろな方からアドバイスをいただきました。ありがとうございます。そのうち、 Perl の書法について学んだことを、忘れないうちにまとめておこうと思います。 1) Emacs の設定 cperl-mode.el は 4.32 が良い? CPAN からダウンロードしてきて、 /usr/share/emacs/site_lisp あたりに放り込む。 .emacs は おいぬま日報(不定期)さんのをコピペ。 2) クラスのフィールドの扱い まず、デフォルト値をハッシュテーブルに定義しておいて、そこ

  • Google Maps API バージョン2による地図表示サンプル

    Google Maps API のバージョン2が正式リリースでご紹介したバージョン2の API を使ってみた。 バージョン1による地図 バージョン2による地図 サイボウズ・ラボは全社員それぞれに遊び場用のサーバ環境をくれ […] Google Maps API のバージョン2が正式リリースでご紹介したバージョン2の API を使ってみた。 バージョン1による地図 バージョン2による地図 サイボウズ・ラボは全社員それぞれに遊び場用のサーバ環境をくれているので、(ほとんど使ってなかった)僕のサーバに置いてみた。 ちなみに、元の HTMLPHP 用の GoogleMapAPI というライブラリで生成したもの。こないだの開発合宿でちょっと遊んでみたので、生成されたバージョン1用のコードを、Google の移行ガイドに従ってバージョン2用に書き換えた。 一番大きな変更は、GPoint を GL

    Google Maps API バージョン2による地図表示サンプル
  • 1