パスワードを忘れた? アカウント作成
13780 story

Binary Hacksが11月11日のバイナリデーに発売 46

ストーリー by kazekiri
バイナリアンならば 部門より

elfbin 曰く、

あのBinary 2.0カンファレンスから一年近く経過しようとしているが、Binary 2.0提唱者である高林哲氏のブログによれば、Binary 2.0カンファレンスにおいてオライリーとアイディアを交わした Binary Hacksの発売日が11月11日に決定したとのことだ。 わざわざ、1111というバイナリデーを選んだようである。 「内容的に類書があまりないユニークな1冊」と書かれているが、 この目次がそれを証明しているだろう。 高林氏の宣伝も読むとますます買いたくなる。 青森県七戸町の ハックリタイで次回イベントが開催という話もあったと思うが、 発売記念イベントをやってくれないだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 萌える Binary Hacks (スコア:4, おもしろおかしい)

    by Anonymous Coward on 2006年10月31日 13時53分 (#1048956)
    http://d.hatena.ne.jp/jtakesako/20061030/1162206662 [hatena.ne.jp] 初回限定ブックカバー欲しい!
  • GoogleGuy (スコア:3, 参考になる)

    by Anonymous Coward on 2006年10月31日 13時36分 (#1048948)
    自分の知る限りでは、高林氏・鵜飼氏ともにGoogleの中の人、ですね。
    それだけでも豪華なイメージが。。
    首藤氏はjavaな人、でしょうか。
  • これって、 (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2006年10月31日 13時46分 (#1048952)
    バッドノウハウ [0xcc.net]の塊じゃねーの?
    でも欲しい。
    • by Anonymous Coward
      目次みる限りではツール使ってどうこうって感じだなぁ。
      どうせならツールがどのようなことをやってて、それを応用するとこういうことができますよ、というのがほしい。
      • by juli (26219) on 2006年11月01日 10時28分 (#1049540)
        > どうせならツールがどのようなことをやってて、
        あるみたいですよ。

        see. http://0xcc.net/blog/archives/000139.html [0xcc.net]

        使い方だけでなく仕組みも説明

        Binary Hacks では単にツールの使い方を紹介するだけでなく、仕組みについてもできるだけ説明するようにしています。ツールがどのように動いているかを知ることは、ツールを使いこなす上で非常に大きな力となります。
        将来にわたって、ツールの使い方は変わっても、仕組みはそう簡単には変わらないため、仕組みを知っていることは長持ちするノウハウになります。仕組みに関するノウハウは自分で似たようなツールを作るときの役にも立つはずです。

        > それを応用するとこういうことができますよ、というのがほしい。
        ここまであるかどうかは買ってみてのお楽しみ。
        親コメント
        • by juli (26219) on 2006年11月02日 9時55分 (#1050164)
          執筆者の一人である高林哲さんのいやなブログ [0xcc.net]でアナウンスされていますが、Binary Hacks ─ ハッカー秘伝のテクニック100選 [0xcc.net]でサンプルの PDF が公開されています。

          このファイルには「本書に寄せて」「はじめに」および書籍に収録された Hack 5本に加えて、書籍に収録できなかった Hack が2本、入っています。

          とのこと。

          > それを応用するとこういうことができますよ、というのがほしい。

          確かに、それぞれのハックの解説をもう少し踏み込んで様々な応用シーンを見せて貰えると、余り理解していない読者にもその価値が実感できて良かったんじゃないかとも思ったのですが、その先へは読者が自ら踏み込んで行き、バイナリアンの世界に足を踏み入れて欲しいというメッセージな気がしました。
          また、この本を読んで興味や好奇心を掻き立てられ、頼まれもしないのに色んな局面で使ってみたくなる、そんなタイプの人が対象読者なのかもしれません。
          親コメント
  • by imaic (31975) on 2006年10月31日 15時28分 (#1049014) 日記
    八栗平死の彷徨になってしまいそう。
  • by Anonymous Coward on 2006年10月31日 17時20分 (#1049058)
    来月11月のFSIJ月例会 [fsij.org]が、この本の話題。

    実は関係者なのでAC
  • 1010に間に合わなかっただけではないか?

    などと思ってしまった。

    --
    MIYAZAKI Yasushi
  • このネタこそ (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2006年10月31日 13時23分 (#1048933)
    「こういう時にこそスルー力ですよ」と言うのにふさわしい。
  • みたいな凄い超絶なアセンブラの手法とか見たいなぁ・・・・
    ちょっとバイナリから外れるけど(汗
    • by sladoslado (28918) on 2006年10月31日 14時49分 (#1048995)
      CPUのアーキテクチャと実装方法で都度変わるから超絶アセンブラって手法といわれても個別すぎて難しいのでは?

      まだキャッシュと言うものが無くてCPU内部クロックとメモリアクセス速度とが同じ時代はいろいろありましたがね。
      アドレス演算はインクリメントよりデクリメントの方が速かったとか、
      割り算より掛け算が早いから逆数掛けてシフトするとか、
      1/4正弦テーブルで16bitSinCosを引いてくるとか、
      PCレジスタ相対でアドレス求めるとクロックが1稼げるとか(1命令3クロックとか4クロックの時代)、
      任意の範囲でループ無しのテーブルジャンプでメモリコピーとか(いまではキャッシュに収めてループの方が早い)

      ハハハ
      親コメント
      • そうです。いわゆる旧世代の高速化技法というのはほぼ死滅したわけで、

        http://www.smallnews.net/azuco/column/amd64/hornet.htm
        手前味噌ですけど、テーブルジャンプとか微妙な速度なんですよね・・・
        プロセッサによっても特性が違いますし・・・・・

        そういうのを踏まえて、達人ならなんか奇跡を見せてくれるんじゃないのかなとw
        親コメント
        • 旧世代と言うと、Apple IIではコンデンサのチャージ時間を
          タイマー代わりにして、ゲームの発射ボタンのトリガ判定に
          していた、なんというのを読んだことがあります。

          Apple IIについての書籍に書いてありました。書いたのは、
          先日Apple Iを600万円と鑑定した柴田さんです。

          以上、リンゴ屋の完全な横やりでした。失礼しました。
          --
          -- gonta --
          "May Macintosh be with you"
          親コメント
          • by Anonymous Coward on 2006年11月01日 1時28分 (#1049391)
            それは各種家電機器でとても昔から使われているテクノロジーだそうです。 それこそAppleなんてなかったころから。

            今でも電気ポットみたいなのには使われているという話です。

            この業界、自分や自分の知っている人が「発明した」ことにするのが好きですよね。試すことにコストのかからないソフト関係では、残念ながら大抵のことは既にやられていると思ったほうが良いとつくづく思います。

            # ソースを示せないのでAC

            親コメント
        • by Anonymous Coward on 2006年10月31日 17時46分 (#1049071)
          今時のコンパイラなら、大きなswitchはtable jumpに変換するよね?

          で、それを手動でtable jumpにしても改善するわけ無いじゃん。

          >いわゆる旧世代の高速化技法というのはほぼ死滅したわけで、
          じゃなくて、コンパイラがすべて取り込んだの。
          (そして適切に使い分けてる)

          >>割り算より掛け算が早いから逆数掛けてシフトするとか
          こんなのも当然やってるよ。(シフトは不要だと思うが)

          >>1/4正弦テーブルで16bitSinCosを引いてくるとか
          これは頻度にもよるが、計算した方が早かったりする。
          親コメント
        • そうか、固定小数点演算 のプチノウハウは今でも有効ですね多分。
          少々荒いながらも精度の見積もりしつつ高速低負荷演算ならこれかな?
          親コメント
        • BoundsChecker とか使ってネックとなっている部分を探し出して
          C++ → アセンブラリスト → スーパースケーラ・キャッシュ等にあわせて最適化
          ということを説明してある本はいくつかありましたね。

          ちょっと前ならMMXとか3DNow!などでコンパイラと差をつけることはできましたが
          今はそれすらコンパイラがやってくれるようになりましたからx86/x64系統では
          人がコンパイルに勝つのはかなりの至難の技で、できたとしてもすぐに陳腐化
          してしまう技術になってしまうかと・・・
      • >1. アドレス演算はインクリメントよりデクリメントの方が速かったとか、
        >2. 割り算より掛け算が早いから逆数掛けてシフトするとか、
        >3. 1/4正弦テーブルで16bitSinCosを引いてくるとか、
        >4. PCレジスタ相対でアドレス求めるとクロックが1稼げるとか(1命令3クロックとか4クロックの時代)、
        >5. 任意の範囲でループ無しのテーブルジャンプでメモリコピーとか(いまではキャッシュに収めてループの方が早い)

        1,4 ---- そんなことはコンパイラが知っている
        2,3,5 -- アセンブラに特化した手法ではなく高級言語で書けばよい

        つーわけで「超絶アセンブラ」の例になってないと思う。

        2は「シフト」とあるんで固定小数の話かな?
        整数除算命令がない(ので関数呼び出しになる)とか極めて遅いCPUとかあるので、今でも有効。
        浮動少数の場合、しかるべき最適化オプション(gccなら-ffast-math)をつけるとコンパイラがやる。
        演算精度の問題で同値にならないことがあるので、標準では有効にならないけど。
        親コメント
        • >つーわけで「超絶アセンブラ」の例になってないと思う。

          文脈読んでくださいね~、だれも今の超絶アセンブラの例など書いてませんよと。
          AZUCOさんが「そうです。いわゆる旧世代の高速化技法というのはほぼ死滅したわけで、」と書けるのは文脈読めてるからですよね。
          ちなみにコンパイラを過信すると・・・ってのはよくある話です。
          当時のコンパイラだって”コンパイラが知っている”ハズのことをやってないのは珍しくもないし今でも・・・。

          >2は「シフト」とあるんで固定小数の話かな?
          >整数除算命令がない(ので関数呼び出しになる)とか極めて遅いCPUとかあるので、今でも有効。

          そうです、正解。
          「CPU内部クロックとメモリアクセス速度とが同じ時代」と言うのは浮動小数点演算器はオプション装備で普通は無くても不思議ではなかった時代ですよと暗黙に示してもおります、メジャーCPUならi286とか68000が末期あたりかな?
          Intelだとi386/i486で浮動小数点演算器有りのDXと無しのSXが並列で売られCPUのデフォルト標準装備になったなのはPentiumからだったかなと曖昧な記憶。
          680x0系も"EC"が頭に付くと浮動小数点演算器無しバージョンになった68020/68030、これ以降は涙無くては語れない。

          親コメント
    • やっぱ、キャッシュとメモリアクセスの差に注目したプログラミングテクニックでしょう。
      これは、アーキテクチャに依存しない一般的なテクニック。
      親コメント
    • コンパイラは局所最適やってくれるだけなので、
      勝ちたいならグローバル最適化の能力をつけるのが吉?つまり、アルゴリズムだけど。

      #未来の処理系はデータの使われ方から最適アルゴリズムを導出したりして・・・
      • >#未来の処理系はデータの使われ方から最適アルゴリズムを導出したりして・・・

        すいません、profile guided optimization (PGO) という汎用的なテクニックなんですけど。
        すでに商用コンパイラでも実装されています。
        親コメント
        • profile guided optimization は、実際にプログラムを動作させたプロファイル結果を基に最適化を行うってだけのものですが、
          元ACの
          > #未来の処理系はデータの使われ方から最適アルゴリズムを導出したりして・・・
          で重要なのは「最適アルゴリズムを導出」ってところで、
          バブルソートなソースから、処理するデータによって
          クイックソートなコードを吐いたり
          バケットソートなコードを吐いたり
          してくれるようなコンパイラを想定しているのでは?

          親コメント
  • かつて (スコア:1, 興味深い)

    by Anonymous Coward on 2006年10月31日 17時42分 (#1049068)
    N88でもDOSでもない、要するにその手のツールが使えない「天使*の午後」のディスクが動かない理由を探してバイナリパッチして互換機で遊んでた俺が来ましたよ。

    objdump --disassemble に嘘付かれて泣きながら *-bugs にメールして objcopy -Oihex やら -Osrec やらで ROM に焼いてたのが十数年前。

    自分の環境で動かす為に $EMACS/sysdep/ だったかその辺でシステム/マシン依存関係を学んで gcc は *.md をいじりたおして当たり前。

    SunOS 用の商用アプリ体験版の ***** を *** して無期限にして使ってみたり(今は正規版ユーザ)。

    敢えて言おう、この本は「入門書」であると! :-p

    # 流石にアレなのでAC。しかしツール揃ってるいい時代だよなぁ。
  • バイナリデー (スコア:0, すばらしい洞察)

    by Anonymous Coward on 2006年10月31日 13時24分 (#1048936)
    0xcc なら 10月10日のほうがふさわしいのでは?
  • by Anonymous Coward on 2006年10月31日 13時26分 (#1048939)
    目次見ると実践的な内容ぽいですね。
    こういう本は無くて、問題が発生するたびに一つ一つ先輩から教わったものだけれど。
    Cは書けるけれど、デバッガやコンパイラオプションが分からない、駆け出しから中堅プログラマに良さそうだ。

    • Re:実践的 (スコア:2, すばらしい洞察)

      by Anonymous Coward on 2006年10月31日 14時09分 (#1048966)
      目次を読むかぎり、デバッガやコンパイラのオプションがわからない人向けには見えないけどね。
      一部の項目にはそういうのもあるけど、これは真っ当な人間が手を出すタイプではない。
      普通のプログラマなら、もっと素直にコンパイラやデバッガの本を買えばいい。

      少し特殊なhackをする人とか、特殊な環境でプログラムをする人とか、少し人とは違った何か
      ブラックマジック的な物に手を出す人向けでしょ。エミュ・バーチャルマシンを作る人とか、
      デバッガっぽい物を作る人とか、システムに乗っとりをかけるような物とか。
      親コメント
      • by Anonymous Coward
        中堅への壁の一つは SEGV でしょう。
        printf() 入れると最適化外れて再発しないような SEGV を追うときに、
        デバッガでスタック情報見たりしません?
        • Re:実践的 (スコア:1, おもしろおかしい)

          by Anonymous Coward on 2006年10月31日 22時51分 (#1049296)
          > printf() 入れると最適化外れて再発しないような SEGV を追うときに、
          > デバッガでスタック情報見たりしません?

          多分、問題ふたつがごっちゃになってるぞ。

          デバッガでスタック情報をみるのは単に楽をする為だよ。
          本当のスタックイメージは心に思い描かれるものなのさ。

          # 今、いい事いったつもりになってます
          親コメント
        • by Anonymous Coward
          printf()入れるとSEGVらなくなるのは大抵は最適化のせいじゃなくてprintfが中でmallocしてるからじゃないかなぁ。
    • Re:実践的 (スコア:2, すばらしい洞察)

      by toworu (27387) on 2006年10月31日 17時45分 (#1049069)
      デバッグ環境などが乏しい組み込み系では、この手の知識は必要なので、なかなか実践的だと思えます。
      親コメント
  • by Anonymous Coward on 2006年10月31日 15時00分 (#1049003)
    >>Binary Hacksの発売日が11月11日に決定したとのことだ。わざわざ、1111というバイナリデーを選んだようである。
    どうせなら目次も16進で・・・
    2進とは言わないから。w
  • by Anonymous Coward on 2006年10月31日 17時39分 (#1049065)
    「ハッタリたい!」に見えた・・・・。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...