タグ

ブックマーク / shinh.hatenablog.com (10)

  • 息を吸うように objdump 2007-12-16 - 兼雑記

    このへんで書いた、どうなってるか自信が無いことがあったらとりあえず objdump しちゃえという話…とか言うと「アセンブリは…」みたいな雰囲気になることが多い気がするんですが、正直アセンブリなんか読めなくてもコードがどうなってるかくらいはわかるよん、という当たり前の話。 #include <stdio.h> struct S { explicit S(int x) : x_(x) {} int x() const { return x_; } int x_; }; int main() { S s(3); printf("%d\n", s.x()); } とりあえずこんなコードをインライン化されるか知りたいとする。とりあえず -g つきでコンパイルして objdump 。 % g++ -g inline.cc -o inline % objdump -S -C inline | lvコツ

    息を吸うように objdump 2007-12-16 - 兼雑記
    progrhyme
    progrhyme 2018/08/16
  • 転職について - 兼雑記

    6月14日がグーグル最終日でした。8月からPFNに混ぜてもらう予定です。退職や入社も重要イベントなんでしょうけど、転職活動それ自体が大変に楽しい体験だったので、入社したからって突然次の会社についての知見にあふれているわけでもなし、このタイミングでなんか書こうと思いました。どうせ暇だし。 前回との差分 http://shinh.hatenablog.com/entry/2016/03/11/142748 が前回までのあらすじ。このちょっと後で、「ニューラルトランスレートすげー」とか思って Google Translate のチームに入れてもらって、自然言語/機械学習研究入門+プロダクショナイズ+TensorFlowまわりのあれこれおもしれーとか、その他いろいろをやってた、というのが現在との差分です。 機械翻訳というのは、他の機械学習応用分野と同じく、ニューラルさんによってすさまじく簡略化され

    転職について - 兼雑記
    progrhyme
    progrhyme 2018/06/17
    おぉ…! GoogleからPFNへ!
  • Brainfuck interpreter in Ruby's Regexp - 兼雑記

    Ruby の正規表現だけで Brainfuck インタプリタを作ることができました。正規表現の実行は =~ だけなので、ループなども正規表現の内部で実行してます。 https://github.com/shinh/hack/blob/master/bf_rb_reg/bf.rb つまりどういうことができるかというと、 BF_REG という Regexp と BF_SUFFIX という文字列定数があって、 bf という文字列に格納された Brainfuck のコードを BF_REG =~ bf + BF_SUFFIX で実行することができます。出力は $~['o0'], $~['o1'], ... に入っているので、 output = '' 256.times do |i| o = $~["o#{i}"] break if !o output += o end 的なコードで取り出すことができ

    Brainfuck interpreter in Ruby's Regexp - 兼雑記
    progrhyme
    progrhyme 2016/10/17
  • 就職して9年が過ぎる - 兼雑記

    転職して7年が過ぎたというのを読んで気づいたんだけど、そろそろ入社後9年が経過したらしい。僕は結構長い期間をここで過ごしたことになるんだなと思った。ちょっと以前のことを振り返ってみようと思う。言うまでもないけどこれは僕の書ける範囲での個人的な感想と体験談であって会社の見解等を表しているものではない。 きっかけ わりと重要でない Borgチーム (の周辺) いつのまにやらBorgという名前を普通に言って良くなっている。嬉しい。まあ当時もぶっちゃけ、秘密だから出してないっていうよりは、単に誰もアカデミア的なキャリアに興味が無いから出してなかったんだと思う(私見)。 さて、当時Borgというかクラスタマネージメントのあたりでは、コンピュータのリソースて適当にたくさん使ってるけど、これ節約したらすっげー支出減ったりしない?みたいなのがホットで、なんかとりあえず色々な人々が色んなことをやっていた。い

    就職して9年が過ぎる - 兼雑記
    progrhyme
    progrhyme 2016/03/11
  • 正規表現の文字クラス - 兼雑記

    Perl は正規表現とか " ではさまれた文字列の中にある変数とか配列を展開してくれるんですが、これは明らかに正規表現の文字クラス ([abc] とか書くヤツ) とブツかるわけです。 以下のコードは @a に 0-999 まで "x" っていう変数をつっこんでから s/$a[...]/y/; 的なことを実行して、 $_ に入ってる x を y に変えようとするコードをいくつか。 #!/usr/bin/env perl for ($i=0; $i < 999; $i++) { $a[$i] = "x"; } $_ = "x"; s/$a[12]/y/; print "12: $_\n"; $_ = "x"; s/$a[123]/y/; print "123: $_\n"; $_ = "x"; s/$a[-2]/y/; print "-2: $_\n"; $_ = "x"; s/$a[-22]

    正規表現の文字クラス - 兼雑記
    progrhyme
    progrhyme 2015/11/10
    ???ってなった。
  • kati について - 兼雑記

    https://github.com/google/kati kati について、ドキュメント書こう…と思っていたのですがなかなか進まないので、とりあえず日語で書いてみることにしました。何書くかがあまり明確じゃないテーマなので、何書くか考えるのと英語考えるのを両方同時にやるのが少し大変で。 動機 kati は GNU make のクローンです。いずれ完全なコンパチになると嬉しいですが、なかなか難しいだろうと個人的には諦めています。用途に対して実用的ならば良いかなと。 動機としては、 Android platform のビルドシステムが、なかなかシュールな GNU make 黒魔術で構成されていて、 make が実際になんかしはじめるまでが遅かったので、そこを高速化したいというものでした。 ビルドシステムが遅いという時、まずだいたいヌルビルドとフルビルドの2点を考えます。ヌルビルドてのは生

    kati について - 兼雑記
    progrhyme
    progrhyme 2015/09/24
  • あなたの知らない超絶技巧プログラミングの世界 - 兼雑記

    奇書を頂きました。 一応レビュアーとして参加したことになっています…が、掲示板かなにかと勘違いした人が雑談をして邪魔をしているな、という感じでした。浜地慎一郎という文字列が10回くらい出てくる残念なです。 もう少しマジメに説明すると、私がクソコードとか読んでいるような、トリッキーなコードの作品集兼使われているテクニックの解説などがなされています。読んでいてこの面白いなーと思ったのは、関連する他の人が書いたコードも紹介されていますが、基的に遠藤さんの作品が主人公ということでした。えっこの人一冊書けるくらい Quine 書いてるんだ…という。 それと、クソコードコンテスト for Ruby であるところの、 TRICK 2015 が開催されますので、みなさん頑張ってクソコードを書いて、審査員をうならせて下さい。 https://github.com/tric/trick2015/blo

    あなたの知らない超絶技巧プログラミングの世界 - 兼雑記
    progrhyme
    progrhyme 2015/09/17
  • ppencode 2 - 任意の Perl コードを予約語だけの Perl コードに変換する - 兼雑記

    @TAKESAKO さんが ppencode を作ってから 10 年経って、私が任意の Perl コードを小文字だけに変換するスクリプトを書いてからでも5年経つらしいですが、なんか任意の Perl コードを予約語だけの Perl コードに変換するスクリプトができました。 http://shinh.skr.jp/obf/ppencode.html オリジナルの ppencode に敬意を表していろいろ雰囲気を似せておきました。割と色んな予約語が使われるようにしてみたりとか。 これは Perl が予約語だけあれば Turing complete ということなので、副産物として Quine もできました。 http://golf.shinh.org/reveal.rb?Quine/shinh+%28keywords%29_1431106882&pl なんというか、 ppencode があれば後は

    ppencode 2 - 任意の Perl コードを予約語だけの Perl コードに変換する - 兼雑記
  • ■ - 兼雑記

    s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeCon vertsAnyPerlCodeIntoAlphabetOnlyPerlCY Xe xor s XXchr length q YThisPerlC odeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeConvertsAnyPerl CodeIntoAlphaY Xe xor s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIn toAlphabetOnlyPerlCodeThisPe

    ■ - 兼雑記
  • Base64 decoder/encoder in Perl - 兼雑記

    http://shinh.skr.jp/obf/b64_dec.pl dXNlIE1JTUU6OkJhc2U2NDtwcmludCBlbmNvZGVfYmFzZTY0IGpvaW4nJyw8PjsKX19FTkRfXwo+ s//v62/e+s//v60/e+s//v44/e+s//v39/e+s//v39/e+s//join/+s//v32/e+s//base64/ss+ s//v95/e+s//decode/+s//v32/e+s//print/+s//v59/e+s//Base64/+s//v58/e+s//v58/e +s//MIME/+s//v32/e+s//use/s/evalこの Base64 ぽく見える物体は Perl コードで、実行すると引数で指定したファイルに対する base64 デコーダとして機能します。 $ perl b64_dec.pl b64_dec.pl >

    Base64 decoder/encoder in Perl - 兼雑記
    progrhyme
    progrhyme 2015/05/07
    おーすごいパズルだ。/ Base64 decoder/encoder in Perl - 兼雑記 /
  • 1