タグ

ブックマーク / dsas.blog.klab.org (30)

  • インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋

    先日Python 3.1a1 がリリースされました。 Python 3.0 は Python 2.6 に比べてパフォーマンスが悪かったのですが、Python3.1はPython2.6よりも速くなるかもしれません。 Python3.1のパフォーマンス向上は、主に次の2点が影響しています。 ioモジュールがC言語で書き直された computed goto の採用 (--with-computed-gotos というconfigureオプションで有効) computed goto という名前を聞き慣れなかったのですが、調べてみると Ruby 1.9 の VM (YARV) や、 Perl6 の VM として開発されとうとうリリースされた Parrot にも採用されている手法でした。今回は簡単に computed goto の紹介をしてみます。 とりあえず label as value C言語の規

    インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2009/03/24
    >ジャンプテーブルを作って無条件ジャンプすることを computed goto というそうです。
  • bitsliceによる超高速ビット演算 : DSAS開発者の部屋

    bitslice とは Hack the Cell '09 に参加して知った、Cellに限らず一般的に使えるビット演算の高速化手法について紹介します。 Bitslice と呼ばれる手法では、ビット順を90度回転します。言葉で説明するよりもコードを見たほうが早いので、回転させるコードの例を見てください int x[32], y[32]; // x が元のデータ、y が回転後のデータ. for (int i = 0; i < 32; ++i) { int t = 0; for (int j = 0; j < 32; ++j) t |= ((x[j] >> i) & 1) << j; // x[j] の i ビット目を y[i] = t; // y[i] の j ビット目にする } この変換をすることで、y[0] には x[0] - x[31] の最下位ビットが、 y[1] には 2番目のビット

    bitsliceによる超高速ビット演算 : DSAS開発者の部屋
  • Hack the Cell '09 課題提出しました : DSAS開発者の部屋

    Hack the Cell '09 に参戦していました。Fixstars社からの結果発表を待ってから成績報告をしようと思っていたのですが、他の参加者の皆さんがどんどんとスコアや素晴らしいテクニックを披露されているので、予定を前倒しして私のスコアとソースコードを公開します。(中身に関してはまた別の記事に書きます) 提出物とスコア ソースコード (試行錯誤の跡が整理されていません) スコア ORIGNAL: sum=3c927c56, 294030647 ticks MINE: sum=3c927c56, 4464381 ticks ORIGNAL: sum=2e987a4d, 424155603 ticks MINE: sum=2e987a4d, 6440068 ticks ORIGNAL: sum=ef1b6aef, 312102737 ticks MINE: sum=ef1b6aef,

    Hack the Cell '09 課題提出しました : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2009/03/11
    >SPUの128bitレジスタを、32bit整数4つとしてではなくて、1bitが128個あると考えて最適化していきます。命令の組み合わせだけでなくデータ構造をどうするのかにも工夫が必要になります。
  • 花粉の飛散量を取得する Perlモジュール : DSAS開発者の部屋

    すっかり花粉が飛び交う季節になってしまいました。 今や花粉症は5人に1人疾患する症状とも言われており、マスクや薬などによる花粉対策の準備を始めている方が多いのではないかと思います。 そこで、今回はプログラマに出来る花粉対策を紹介したいと思います。 花粉症対策にはとにかく花粉を吸わないことが重要です。 大量の花粉にばく露されることで、症状が悪化したり、今まで花粉症で無かった人も花粉症が発症する場合があります。 つまり花粉が多く飛んでいる時間帯をなるべく避けることが有効な花粉対策なのですが、 天気予報の花粉飛散情報は1日単位のデータだったりして、参考にならないことが多いです。 環境省が運用する花粉観測システム(はなこさん)では1時間毎の花粉飛散データが公開されています。 1時間毎に花粉飛散データが更新されるため外出のタイミングを決定するのに役立ちます。 プログラマであれば、このデータを cro

    花粉の飛散量を取得する Perlモジュール : DSAS開発者の部屋
  • linux のシステムコールをフックする : DSAS開発者の部屋

    最近、とあるクローズドソースなデバイス管理ツールの挙動が気になり、その動作について解析してみることにしました。 プログラムをデバッグしたり解析したい時、どんなシステムコールが呼ばれ、どのような引数が渡されているかを、調べることができる strace は非常に有用です。 しかし、strace では ioctl で渡される複雑なデータ構造を表示することはできないため、システムコールをフックして引数を表示するという手段を取ることにしました。 そんな訳で linux でシステムコールをフックする方法について調べて見たところ、意外といろいろな方法が有ることを知りましたので、試してみた方法を幾つか紹介したいと思います。 注)今回の実験に使用した linux kernel のバージョンは 2.6.25.11 です。異なるバージョンではこの実験通りにはならない場合があります。 LD_PRELOAD を使っ

    linux のシステムコールをフックする : DSAS開発者の部屋
  • DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋

    DSASのファイル転送システムを、オープンソースで公開します。 その名は、makuosan(まくおさん:通称「まくお」)っていいます。 名前は冗談っぽいですが、内容はわりと真面目です(^^; MAKUOSANプロジェクトサイト Webサイトの運用に欠かせない作業のひとつに、「デプロイ」という作業があります。 これは、新しいプログラムやデータなどをWebサーバに設置して利用できるようにす ることを指していますが、サイトの規模が大きくなってWebサーバの台数が増えると、 それに比例してファイル転送にかかる時間も長くなっていきます。 一般的な話として、サイトの規模が大きくなるほど運用コストは増大しますが、 その要因のひとつとして「デプロイ時のファイル転送に時間がかかる」という 点がありました。そこで、できるだけ運用コストを抑える(作業者の負担を減 らす)ために、独自のファイル転送システムをこしら

    DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋
  • インターンシップの感想(2) : DSAS開発者の部屋

    【動機】 私は内定者として、人事のほうから連絡をいただき、そこからインターンに参加させていただくことになりました。といっても勝手に配属先が決まるわけではなく、インターンを受ける前に事前にオリエンテーションがあり、そこで研究開発かKラボどっちに行きたいかという希望を伝えることが可能です。私は検索エンジンを作成したいといういことを伝え、自分のやりたいことをひたすらやることができるKラボでお世話になることになりました。 【現場の雰囲気】 はじめは人との関わり、先輩社員や同じインターン生との交流、とにかく不安でいっぱいでした。自分はそこで具体的に何をすることになるのか。実際の仕事現場はどういうものなのか。それを体感できるという楽しみもありましたが、不安のほうが大きかったように思います。 しかし実際来てみて、他のインターン生に会い、社員の方たちと会い、話をしていくうちにその不安はすぐに取り除かれまし

    インターンシップの感想(2) : DSAS開発者の部屋
  • サーバ/インフラTech Meetingの報告+資料を公開します : DSAS開発者の部屋

    先週の金曜日に行われたサーバ/インフラ Tech Meetingの資料を公開します。 このを書いたわけ - ひろせまさあき(PDF, 1594KB) DSASのこれから - 安井真伸(PDF, 529KB) はてなの伊藤さん、田中さんの発表資料も既に公開されています。 サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー はてなのインフラ、いまむかし @ サーバ/インフラ Tech Meeting - とあるはてな社員の日記 また、当日の動画もニコニコ動画にアップされています。cojiさんありがとうございました! サーバ/インフラ Tech Meetingの動画 - TechTalk.jp これらの資料、動画や、当日の会場の写真などは、まとめて技評さんのサイトにもアップされると思いますので、そちらもチェックしてみてください。 サーバ/インフラ Tech

    サーバ/インフラTech Meetingの報告+資料を公開します : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2008/08/12
    サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用
  • 社内コードコンペ - お題:最速なCIDRブロックマッチ判定 〜 安井の場合: バイナリサーチのあれとこれ〜 : DSAS開発者の部屋

    そして、残った7個のCIDRブロックに対してネットワークアドレスのマッチングをすればよいので、最大でも14回の数値比較で結果を得ることができます。これならば、32ビットの二分木検索(IP::Country)よりも計算量は少なくて済むはずです。 アセンブラでも書いてみた もう、だいぶ昔の話になりますが、アセンブラ(6502,Z80,68000)で遊んでいた時期がありました。ちょうどそのころ、バイナリサーチ、バブルソート、クイックソートなどの「アルゴリズム」と呼ばれるものにはじめて遭遇し、「これはすごい!」と純粋に感動していたことを覚えています。 その記憶が甦ったのか、なにを血迷ったのかわかりませんが、なぜかふと、「cidr_lookupをアセンブラで書き直せばもっと速くなるんでね?」と思い、インラインアセンブラで書き直してみたのがこちらのコードです。処理の内容は上記のものとまったく同じです。

    社内コードコンペ - お題:最速なCIDRブロックマッチ判定 〜 安井の場合: バイナリサーチのあれとこれ〜 : DSAS開発者の部屋
  • chumbyにsshログインしてオレオレswfを実行するまでのメモ : DSAS開発者の部屋

    もうすぐChumby Niteが開催されるようですが、 たまたま某所からchumbyをお借りしたので、chumbyハックの導入として、 sshでログインできるようにする 自作のswfファイルを実行する ところまでのメモを残しておきます。 事前にやること - アカウントを作る chumbyが届いたら 無線LANに繋げる アクティベーション sshでログインできるようにする sshd起動の制御 (おまけ) FBCGI - chumbyの画面をPCブラウザでみる 自作swfを動かしてみる chumbyでサポートしているFlashのバージョン swfを実行する方法 (1)直接実行 (2)チャンネルの中から実行 swfファイルを作る Hello World! こんにちわ!こんにちわ! 事前にやること - アカウントを作る 予めchumbyのサイトでアカウントを作っておきます。chumby体をアクテ

    chumbyにsshログインしてオレオレswfを実行するまでのメモ : DSAS開発者の部屋
  • (速報)SWF SpecificationがOpenになりました : DSAS開発者の部屋

    以前、「SWFファイルフォーマットとライセンス 」で、SWFのファイルフォーマット仕様書の利用許諾に、SWFファイルを読み込むプログラムを作成してはいけないと書かれていることを紹介しました。 今日、Adobeから「Adobe and Industry Leaders Establish Open Screen Project」というプレスリリースがあり、その中に以下の一文がありました。 - Removing restrictions on use of the SWF and FLV/F4V specifications ということで、SWFの仕様書を制限無しに読むことが可能になったようです。 他にも、Flash Playerの移植レイヤが公開され、Flash Playerを移植してもライセンス料が取られなくなる等が発表されているようです。私もまだ流し読みしかしていないのですが、とても大き

    (速報)SWF SpecificationがOpenになりました : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2008/05/01
    ktkr
  • KLab勉強会#4の資料を公開します : DSAS開発者の部屋

    3/28に開催した、第4回KLab勉強会の資料を公開します。 『DSASのやりくり - MATRIXの秘密と効率的なシステム管理の関係』 〜 ひろせまさあき (KLab株式会社) 発表資料 (PDF, 661 KB) 動画: 前編、後編 (Ustream.tv) 『オープンソースなシステム管理フレームワーク Func』 〜 宮下 剛輔(株式会社paperboy&co.) 発表資料 (PDF, 753 KB) 動画 (Ustream.tv) たくさんの方にお越しいただきありがとうございました。 おかげさまで、懇親会も含め盛況のうちに終わり、とても楽しい時間を過ごすことができました。 近いうちに第5回も開催したいと思っています。 勉強会の内容や参加募集など、決まり次第このブログでアナウンスしますので、今後も購読していただければと思います。

    KLab勉強会#4の資料を公開します : DSAS開発者の部屋
  • KLab勉強会#4 開催のお知らせ : DSAS開発者の部屋

    第4回 KLab勉強会のお知らせです。 (過去の勉強会の資料はクラブラボのKLab勉強会まとめページにあります) 今回は『システム管理』をテーマに、ゲストスピーカとして株式会社paperboy&co.の宮下氏をお迎えして、Funcというオープンソースのシステム管理フレームワークについてお話ししていただきます。 また弊社からは、DSASで実践している、効率的なシステム管理のための工夫についてお話をします。 みなさんのご参加、お待ちしております! 開催要項 日時 2008/3/28 (金) 19:00-20:00 (18:30受付開始) 場所 KLab株式会社 第3会議室 東京都港区六木6-10-1 六木ヒルズ森タワー20F (アクセス方法) 参加費 無料 人数 30名程度 (定員になり次第、参加登録を締め切らせていただきます) ※終了後に懇親会(会費制)を予定しています セッション タイ

    KLab勉強会#4 開催のお知らせ : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2008/03/17
    mizzy++
  • SWFファイルフォーマットとライセンス(その2) : DSAS開発者の部屋

    少し前の話になりますが、とうとうFlex 3 SDKとAIR SDKが公開されました。既にお使いの方も多いかと思います。 さて、以前「SWFファイルフォーマットとライセンス」という記事を書いたのですが、Flex 3 SDKが公開されてどうなったかの続報をお伝えします。 まず、大きな変更として、オープンソースな部分が増えました。Flex 2 SDKのときはFlex FrameworkのみがMPL(Mozilla Public License)だったのですが、Flex 3 SDKになって、コンパイラ、デバッガ、SWFライブラリ等もMPLになりました。Adobe Open Source に Flex SDK プロジェクト があるので、詳しくはそちらをご覧下さい。「プロジェクトページなんてどうでも良い、早くソースを見せろ」という方は、Flex SDK のsvnリポジトリが <http://open

    SWFファイルフォーマットとライセンス(その2) : DSAS開発者の部屋
  • 浮動小数点数をできるだけ短い10進数に可逆変換する : DSAS開発者の部屋

    以前もこのBlogで紹介したswfmillは、swf内の情報をXML形式に変換したりその逆変換ができたりするのですが、swf内の実数をXML内では10進表記している関係で、逆変換しても値が元に戻らない場合がありました。しかし、10進数から2進数の変換では、1/5が2進数で表現できないために正確な変換ができないのに対して、2進数から10進数の変換なら誤差のない正確な変換ができるはずです。とりあえず10進数の有効桁数を倍精度浮動小数点の有効桁数より大きくしてみて、パッチをswfmillのMLに送ってみたところ、「netlibにあるdtoa.cとg_fmt.cを使うといいよ」というアドバイスをもらいました。 dtoa.cには、strtod()とdtoa()という関数が実装されています。strtod()が正確に近似方向への丸めを行う文字列からdoubleへの変換で、昨年Ruby 1.8に取り込まれ

    浮動小数点数をできるだけ短い10進数に可逆変換する : DSAS開発者の部屋
  • 最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋

    repcachedの開発をしている関係で、昨年あたりからmemcached界隈のウォッチを強化しています。 昨日のエントリでもちょっと書いたんですが、なぜかここ最近、にわかにmemcached界隈が賑やかになってきている感があります。具体的には、memcached互換の実装がいろいろと現れたり、新しいクライアントライブラリが登場したりなど。 そんなわけで、最近わたしが気になっている、memcached関連のあのプロダクトやこのプロダクトをささっとまとめてみたいと思います。 クライアントライブラリ (C) libmemcached Brian Akerさんによる、C言語用のライブラリ。 既存のC言語用のライブラリである、libmemcacheとapr_memcacheに続く、第3のC言語用ライブラリです。 Consistent Hashingも実装しているようです。 いままでベンチマークプロ

    最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋
  • mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋

    現在 WEBアプリケーションの開発言語といえばいわゆる Light Weight Langage が主流の様な気がしますが、C言語で WEBアプリケーションを書きた いと思った時、どのような方法があるでしょうか。一つはコンパイルした実行 オブジェクトを CGI として呼び出す方法、もう一つは apache module を書く という方法があると思います。 CGI の場合プロセス起動のオーバーヘッドがありますが apache module の 場合非常に高速です、にも関わらず apache module による WEB アプリケーショ ンの開発があまり流行っていないのはやはり、コード変更の度にコンパイルし なければならない事と、反映の際に apache を再起動しなければならない事が 原因ではないかと思います。 そこで、apache module っぽい C言語のコードをサーバー上で動的に

    mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋
  • JPCERT/CCとの「脆弱性情報ハンドリング」の記録 : DSAS開発者の部屋

    ■ はじめに 「△△製のソフトウェア××に脆弱性が発見された」というニュースが連日のようにネットの上を行き交っています。 このブログの読者にはプログラム開発者の方も多いと思いますが、 自分の携わるソフトウェアの脆弱性を第三者から指摘された経験のある方はどのくらいおられるでしょう? 先日、筆者は「HttpLogger」というフリーソフトウェアのセキュリティホールを修正しました。 そのきっかけとなったのはJPCERT/CC(有限責任中間法人 JPCERT コーディネーションセンター)様から届いた 一通のメールでした。 それから私は同センターと連携し、10日余りの準備期間を経て修正ずみのモジュールの公開と 旧バージョンにおける脆弱性情報の開示を行いました。 この「脆弱性情報ハンドリング」と呼ばれるプロセスに関わったことは、一般的な知名度とは裏腹に 普段あまり身近な存在ではない「JPCERT/CC

    JPCERT/CCとの「脆弱性情報ハンドリング」の記録 : DSAS開発者の部屋
  • SWFファイルフォーマットとライセンス : DSAS開発者の部屋

    今回は、SWFを弄るときに必ず理解しておかないといけない、ライセンスに関する注意点をまとめてみます。 まず、公式なSWFファイルフォーマットの資料として、Adobe Systems Inc. (以降、Adobe) が"SWF and FLV File Format Specification" (以降、公式仕様)を公開されています。 (http://www.adobe.com/licensing/developer/) この公式仕様の利用許諾が "SWF and FLV File Format Specification License Agreement" になるのですが、この中に次のような文があります。 3. Restrictions a. You may not use the Specification in any way to create or develop a runti

    SWFファイルフォーマットとライセンス : DSAS開発者の部屋
    TAKESAKO
    TAKESAKO 2008/01/10
    そうですね。自分もAdobeの資料は見ずに、"Alexis' SWF Reference"を見てSWFを変更するツールを作りました
  • DSAS開発者の部屋:ActionScript Converter '3to2' を公開します

    少し遅くなってしまいましたが、去る 11 月 27 日に開催された Tech-mobi2007 でお話させていただいた ActionScript Converter "3to2 (サントゥニー)" の講演資料とソースコードを公開させていただきます。 講 演資料: http://lab.klab.org/files/flash/asc_presentation/mobidec.xul ActionScript Converter紹介ページ: http://lab.klab.org/modules/mediawiki/index.php/3to2 ソースコー ド: http://lab.klab.org/files/flash/asc3to2.tar.gz ActionScript Converter "3to2" は、その名のとおり、 ActionScript プログラムの変換器を目指して開

    DSAS開発者の部屋:ActionScript Converter '3to2' を公開します