2016年4月14日のブックマーク (3件)

  • Bushido: Way of Total Bullshit

    Bushido: Way of Total Bullshit Everything Tom Cruise taught you about samurai is wrong December 8, 2014 • words written by Rich • Art by Aya Francisco The term bushido calls forth ghosts of Japan's hallowed samurai class. A class so bent on preserving honor, they'd rather slit their own bellies in ritualistic suicide than live a shamed existence. In The Last Samurai, bushido melds with Nathan Algr

    Bushido: Way of Total Bullshit
    shnkkb
    shnkkb 2016/04/14
  • 世界一簡単な?ビット演算の覚え方 #アルゴリズム|CodeIQ MAGAZINE

    ビット演算どこで役立つ? 最も効率的な活用場面として、複数のYes/Noの状態をひとつのオブジェクトやエンティティに持たせるケースです。Unixファイルシステムのアクセス制御などはその例です。読み込み可能か、書き込み可能か、実行可能かのそれぞれのパーミッションをビットで管理しています。 それぞれ3つの状態を個別にもたせると3バイト(SQLで言えば3カラム)必要になりますが、ビットにすれば1バイト(SQLで言えば1カラム)ですみます。ファイルシステムやデータベースのように大量のデータにそれぞれフラグを持たせる場合に、ビットで管理するとデータ量を節約できるわけです。 このようなフラグ管理が行われている例として Unix/Linuxファイルシステムのパーミッション PHPerror_reporting(出力するエラーの種類の設定)などのプログラミング言語の設定値 TCP/IPのサブネットマスク

    世界一簡単な?ビット演算の覚え方 #アルゴリズム|CodeIQ MAGAZINE
    shnkkb
    shnkkb 2016/04/14
  • Go言語でメモリ上の大きさや配置を調べる

    golangで構造体を定義した場合、 メモリ上にどのように配置されるのでしょうか。 通常意識する必要はありませんが、32bitと64bitで挙動がおかしい場合など、 ごく希に調べる必要に迫られる場合があります。 そのような場合、各要素のサイズや、構造体先頭からのオフセットを調べることで、 メモリ上に構造体がどう置かれるかを調べることができます。 C言語でのsizeofやoffsetofに対応する物が、golangのunsafeパッケージに用意されているため、 これを利用することで構造体の様子を調べることができます。 https://golang.org/pkg/unsafe/ 今回は以下のようなテスト構造体を使い、メモリ上にどのように置かれるかを調べました。 テスト環境はwindows7(32bit)とmac(64bit)になります。 type A struct { flag bool n

    shnkkb
    shnkkb 2016/04/14