2013-01-01から1年間の記事一覧

NaCl について

カーネル/VM Advent Calendar 2013 にさっき登録しました。需要の無さそうな NaCl について語ります。https://qiita.com/advent-calendar/2013/kernelvmNaCl はグーグルが作ったものの中で一番好きくらいに好きなものです。理由は低レイヤコンポーネント集だ…

glibc signature quiz

会社のホワイトボードでシグネチャから関数名を当てるという遊びをやっていて、これが意外とかなり難しくて面白かったので、適当に html で作ってみました。http://shinh.skr.jp/quiz/signature.html一応軽くユニークなことは確認してありますが、ひょっとし…

ELF loader をまた書いたというはなし

IOCCC 2013 向けのエントリとして何書こうかなーと考えて、あまりネタが無いのと、まぁ一度入賞したし好き勝手なのを書こう、ということで ELF loader を書きました。http://shinh.skr.jp/dat_dir/elf.cC 的な obfuscation はあまりしてないわけですが、 1k …

Code Zip

http://www.codechef.com/CDGF2013/ずっと勝てないなあと思ってたけど、なんかうっかり勝ちました。なんかややこしい書き方してあるけど、実はすごく簡単な問題、ってのばっかりで、ゴルフの問題としてはかなり残念感がある問題セットではありました。 BINGC…

cref

C のマクロと、型のサイズとか typedef の行き先を知りたいことがよくあるんで、適当にひけるものを作りました。http://shinh.skr.jp/cref/CUI の方は $ cref SIGUSR1 === C macros === * SIGUSR1 libc-2.17-x64: 10 libc-2.17-i686: 10 libc-2.17-x32: 10 l…

glibc lock elision の感想もうひとつ

glibc の lock elision パッチへの感想ですけど、 RTM をウラで使われると、典型的なデッドロックであるところの AB-BA 的な deadlock 、つまりロックの順番が逆転してるコードパスがあると deadlock 、ってケースの発見率が減ることがあるんじゃないかな、…

TSX の話

http://atnd.org/events/41227x86/64 最適化勉強会6 で TSX の RTM について最近調べたりしたことを発表してきました。スライド: http://shinh.skr.jp/slide/tsx/000.htmlなんか速くしたいなーと思ってたんですが、あまり何を速くしようっていうアイデアが無…

書き込み時に reader lock を取るテクニック

昔、データを書く時に reader lock を取って、読み時に writer lock を取るワザがある、っていうのを聞いたのを覚えていて、詳細を忘れてたんですが、最近思い出す機会があったので書いておきます。thread local storage を使って各スレッドにあるキャッシュ…

\BV interpreter in sed (ICFPC 2013)

去年と似たようなネタでこっちの方がはるかにラクでしたけど、まぁまともに参加できる日程でなかったので…使いかたはプログラムと入力を空白くぎりで入れる感じ。 $ echo '(lambda (x_78920) (fold 0 (not (xor (not (shr1 (not (plus (if0 (plus (not (shr1…

clearstack

Conservative GC 使ってる時に、スタックにポインタぽいものが残ると、もう使ってなくてもメモリが解放されないみたいな話があって、コンパイラで関数から出る時にポインタを持ちうるメモリをクリアすると良いかなぁと作った clang plugin 。https://github.…

NetBSD の ld.elf_so を読む

http://partake.in/events/1bed8969-5bc9-4f02-bc19-2698cb5577a3のため xprintf.c loader はいろんなものが初期化されてないとこでスタートするんで、 printf とか当然自前定義になるんで、あるだろうな、と思ったらやっぱりあった。まぁ glibc の loader …

emscripten であそぶ

hello int main() { puts("hello"); } 生成されたコード // EMSCRIPTEN_START_FUNCS function _main() { var label = 0; var $1=_puts(((8)|0)); return 0; } Module["_main"] = _main; // EMSCRIPTEN_END_FUNCS 8がだだっぴろいメモリへのインデックスなの…

スライドふたつ

罰ゲーム的に量子情報について、いいかげんなことを喋ったのでそのスライドhttp://shinh.skr.jp/slide/qi/000.htmlあとここに書くの忘れてましたが、年末やってた openFrameworks 遊びについてのスライドhttp://shinh.skr.jp/slide/demo/000.html

TSX 続き

abort した時のフラグを見てみる。 immintrin と -mrtm を使うのがラクそうだったので、インラインアセンブリをやめてみました。まぁ等価な関数を書くのも簡単そうではあります。https://github.com/shinh/test/blob/master/tsx_abort.cc実行結果は xabort_e…

はじめての TSX

TSX とかちょっと遊んでみたいよねーというのと、 fedora つらくなってきたので debian 入れるついでなどと言い訳して haswell マシン買った。買ってから id:w_o さんが haswell でも TSX 無いモデルがあるという趣旨の tweet をしていて、すごくヒヤっとし…

TRICK 2013

https://github.com/tric/trick2013https://sites.google.com/site/trickcontest2013/home/ja大変楽しく審査員をやらせてもらいました。いろいろ思ったことがあるので、いろいろ適当に書いていこうかと思います。 作品評 ざっくり僕が良いと思ったやつから順…

Thread local storage

http://dev.gentoo.org/~dberkholz/articles/toolchain/tls.pdfを読みました。 TLS の実装はざっくり言うと常に TLS 管理領域を指してるレジスタを一個作ってて、それをスレッドごとに別の値にするだけ。 86 ではセグメントレジスタが使われてる…くらいのざ…

104B Hello, world! ELF binary for x86-64 linux

このサイトを見て、なんとなく書いてみました。http://shinh.skr.jp/obf/hello_linux_elf_x64.outアセンブリのコードhttp://shinh.skr.jp/obf/hello_x64-104.asm説明はこのへんhttps://docs.google.com/spreadsheet/ccc?key=0AolcvzoWgN21dFRvYk0wWmg2bW5aNl…

Chrome Key と sortable というのを chrome store に

完全に自分のためだけに作った extension ですが、 chrome store に置いておかないと色々不便ぽいので置いておきました。Chrome Key の方は捨てたかったんですが、他のキー設定系のやつでやりたいことが全然できなかったので、自分用のをメンテする覚悟をし…

puyoai AI vs AI 動画

http://www.youtube.com/watch?v=kk97-SQhkwAhttp://www.nicovideo.jp/watch/sm20002331適当に上げてみました。私の AI (cpu/hamaji/lps.sh) がたまたま綺麗に勝ってる感じで気分が良いです。ただ連鎖発火検出ミスってるのはおかしな話ですね内部状態使って…

puyoai

有志でやってた、ぷよ AI 作ったりして遊ぶコードを github に起きました。 TODO やおかしいところがたくさんありますが、キリがないので、まあとりあえず置いておこうという…https://github.com/puyoai/puyoai人類最強を実際のゲーム機上で倒すことを目標と…

2012年まとめ

やったことを思い出すと… ぷよぷよ AI など openFrameworks NaCl 変コードは ICFPC in Befunge 、 IOCCC と hello broken keyboard 、小文字アルファベット Quine for ruby 1.8 、 TLE 2位、 Malbolge 、あたり。 ChangeLog に自分の名前を混入させようプロ…

openFrameworks で遊んでみた

年末は openFrameworks で遊んでました。成果物は適当に G+ とか youtube に上げてました。しょうもないデモだけど暇な人は見てみてね、って感じの用途だとこういうソーシャルメディアは便利な気がしますね… twitter だと短すぎるし、はてなとかだと大袈裟す…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h