タグ

ブックマーク / mixiengineer.hatenablog.com (6)

  • isucon2に参加してきました。 - mixi engineer blog

    こんにちは、ゾンビ映画が大好きだけど怖くて一時停止しながらじゃないと見れない森@たんぽぽグループです。 isucon2に参加してきました。 事前調査と方針決定 公開されていたisuconのソースと参加チームのblogを読み、どういう方針で行くかを相談しました。 正攻法だとある程度の改善はできるけども優勝は狙えないだろう。 ということでチートを目的とすることにしました。 チート方法 偽情報 twitterに「AKB48が渋谷ゲリラライブやってるよ! #isucon2」などと流す。 考えただけで実際には実行はしませんでした。 2位狙い reverse proxyの接続先を優勝候補チームのreverse proxyに向ける。 ※今回はIPアドレスの下2桁がチーム番号だったので推測可能でした。 upstream fujiwara { server xxx.xxx.xxx.xxx } server

    isucon2に参加してきました。 - mixi engineer blog
  • 出張報告 第4回セキュリティうどん(かまたま) - mixi engineer blog

    2010年10月2日(土)に香川県の国立香川大学 幸町キャンパスで行われた第4回セキュリティうどん(かまたま)にて、弊社が取り組んでいる情報セキュリティに関する話題を中心に4名のスタッフが下記の発表を行いました。 「ここ数年の業者対策」森 「標的型メール攻撃の流行とITセキュリティ予防接種」松岡 「暗号 -mixiの鍵管理ライブラリなど-」小山 「先日の大規模障害について-運用チームから-」「mixiのシステム運用管理について」小池 以下、イベントの模様を撮影した写真を貼付します。 蛇口からだし汁がでるよ。 1杯目「さか枝」ひやあつ。小が小でないでござる。 2杯目「まるいち」 3杯目「ごえもん」カレーうどん 4杯目「ゴッドハンド」ひやひや。非常に印象深い麺。 5杯目「うどんバカ一代」釜バター。 6杯目「明石家」 八頭身の何か

    出張報告 第4回セキュリティうどん(かまたま) - mixi engineer blog
  • いまからでも間に合う開発者テスト - mixi engineer blog

    はじめまして。開発部じゃない加藤和良です。 最近、mixi では Buildbot をつかった継続的インテグレーションをはじめています。安定版の mixi のソースコードにコミットすると Buildbot がそれを検知し、自動的にテストが走るようになりました。 ここでの「テスト」は Test::Simple や prove(1) をつかった、Perl でかかれた開発者テストを指しています。mixi の開発者テストをとりまく環境は、ここ数年でかなり改善されました。今回はその歩みをふりかえりながら、テストの無いコードベースをどこからどうやって変えていったかという話をしたいと思います。 開発環境 はじめに、前提となる mixi の開発環境について説明します。mixi では複数人の開発者がひとつのマシンで作業を行います。それぞれの開発者は、あらかじめ割り当てられたポートで Apache を起動し、

    いまからでも間に合う開発者テスト - mixi engineer blog
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
  • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

    サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

    PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
  • mixi Engineers’ Blog » 新RSS Crawlerの裏側

    このブログでは初めましての長野雅広(kazeburo)です。mixi開発部・運用グループでアプリケーションの運用を担当しています。 12月12日よりmixiのRSSのCrawlerが改善され、外部ブログの反映が今までと比べ格段にはやくなっているのに気付かれた方も多いかと思います。この改善されたRSS Crawlerの裏側について書きたいと思います 以前のCrawlerについて 以前のCrawlerは cronからbrokerと呼ばれるプログラムを起動 brokerはmember DBから全件、idをincrementしながら取得し、外部ブログが設定されていればcrawlerを起動(fork) crawlerはRSSを取得しDBに格納して終了 このような設計になっていました。 この設計の問題として、member DBを全件走査するという無駄な動作と、一件一件crawlerを起動するためオーバ

    mixi Engineers’ Blog » 新RSS Crawlerの裏側
  • 1