読者です 読者をやめる 読者になる 読者になる

robust_quine.pl

Ruby にできて Perl にできないことは無いという格言があります。http://d.hatena.ne.jp/ku-ma-me/20140219/p1 $$qq.=q';printf"\$\$qq.=q%c%s%c;;##%c;\n\$\$uu.=q%c%s%c;;##%c;\n\n\$\$ii||=%c\$_;;\$\$\$ii.=\$\$qq;;s#^;.{217}\$#\$\$qq#ee;;#;#^^;\n\$\…

mingn

MinGW 的な、ミニマルな GCC 開発環境を NaCl 上で動かしたいなってことで冬休みくらいから遊んでた (gcc のポート自体は一昨年からあったが…) ものをちまちま naclports という NaCl に移植したアプリ集みたいなところにコミットして、なんとなく区切りがつ…

ARM test environment on Debian

$ cat /etc/apt/sources.list.d/emdebian.list deb http://www.emdebian.org/debian/ sid mainとか置いておいて、 $ sudo apt-get update $ sudo apt-get install g++-4.7-arm-linux-gnueabihf qemu gdb-arm-none-eabiとかで。 gdb-arm-none-eabi は gdb-mul…

ARM にゅうもん

例のごとく、書かないと覚えられません。参考文献日本語命令セット: http://www.ced.is.utsunomiya-u.ac.jp/lecture/2013/aca/ARMjp-vH.pdfコンパイラのマニュアルらしいけど概要的に便利なやつ: http://infocenter.arm.com/help/topic/com.arm.doc.dui0056d…

NaCl のメモリレイアウトについて

前から図でも書こうかなぁと思ってたのですが、機会があったのでとりあえずスプレッドシートを作ってみました。https://docs.google.com/spreadsheet/ccc?key=0AolcvzoWgN21dG5PVldnM0VJUzByU2hqcXFQaGVVdWc&usp=drive_webひとつ前で書いた通り、 NaCl では …

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 だと短すぎるし、はてなとかだと大袈裟す…

Hello golf in Malbolge

Esolang Advent Calendar 2012 用のエントリです。 Esolang 的な自己紹介としては、今年は ICFP のコンテストのために巨大な befunge プログラムを書きました。 Malbolge 概要 ご存じの人が多いかと思いますが、 Malbolge という超難解言語があります。この…

Brainfuck => ShaFuck translator

ShaFuck という言語があります。チューリング完全なのに、難解どころか、プログラムを書くことは不可能だと主張してる言語です。http://esolangs.org/wiki/ShaFuck不可能だと主張している理由は、入力として受け取ったコードを SHA1 した結果を BF として実…

IOCCC2012 供養 / C と C++ を見分けるプログラム

入賞できないだろうなーと思ってたけどやはりできなかったボツネタ。 #include <iso646.h> #include/*C*/ <stdbool.h> #include/*C++? !*/<stdio.h> struct/**/t{int s[2 ];} ;int s,i;int #define C( a/* */, b)a##b #define W(a )S( /**/a) #define f(x ,y) for(i\ =-1;19 >++ i;) putcha</stdio.h></stdbool.h></iso646.h>…

ICFP Programming Contest

はじめて参加してから10年近く経過して9回参加したぽいので、2003年以降の問題について、社内で話した時の資料です。http://shinh.skr.jp/slide/icfpc/000.html最後にスライド枚数を表に入れたのは、スライド枚数がだいたい思い入れに比例してるかなぁ、と思…

ぷよ譜 DB

ここ1年ほどぷよぷよを練習しているのですが、まぁヘタの横好きであまりうまくはならないです。それはともかく、困る感じの序盤ツモに対して、うまい人がどう置いてるのかなぁ、というのが知りたかったので、ニコニコに置いてある100本先取動画を適当に読ん…

Hello broken keyboard

http://golf.shinh.org/p.rb?Hello+broken+keyboardゴルフなんだけど、文字数じゃなくて文字種を減らす、という問題。 Hello, world! だとあまり面白くもないかな…と予想してたんだけど、予想に反してかなり楽しい問題になったようだった。C のこの解答が謎…

downcase_quine.rb

小文字英語(と空白)だけで書かれた、 ruby 1.8 で動く Quine (ただし 32bit 環境限定) 。久しぶりにおおーという感じのコードになりました。http://golf.shinh.org/reveal.rb?Quine/shinh+%28downcase%2C+mame%29_1346029732&rb追記: 32bit 環境限定じゃなく…

Cracked!

恥ずかしい話ではありますが、 shinh.skr.jp のトップページが書き変えられちゃいました。しかしかなり早い速度で、というかタイムスタンプを見るに書き換えの4分後に教えていただけたので、すぐに戻すことができました。ありがとうございました…会社だった…

topcoder rate vs toefl score

あまりわからない…ちなみに一番下に燦然と輝く星が、我等が日本でございます。

プログラムコンテストと逆言葉の壁仮説

ゴルフやるアメリカ人が全くいない、という話のあと考えてた謎仮説。考えてみると topcoder や ICPC もロシアやら中国やらが強いという印象。 ICFP programming contest もたとえば Google Japan はたぶん他の全 Google をあわせたより多い人数が参加してい…

Befunge コードの説明

忘れないうちに適当におえかきしてみました。

ICFP programming contest 2012

http://shinh.skr.jp/dat_dir/icfp12.tgz二日目から遊んでました。 <vp0"L"2p0"F"0p0"E"0p0"D"*55p0"C"0p0"B"*25p0"A"0 p"d"00 v< >0"J"0p 0"M"0p v > >00g"F"0g2p 10g"F"0g1+2p :"F"0g2+ v v p0"N"0 < > "G"0p ^ > :"*"- #v_^ 2 v < ^ +1g0"G" _^#!-"@": < > :"\"- #v_ "G"0g v p > 010p 000p > #^~:00g 10g"e" +p:"R"-#^</vp0"l"2p0"f"0p0"e"0p0"d"*55p0"c"0p0"b"*25p0"a"0>…

Tinycc on NaCl について kernel/VM 探検隊7で話しました

https://sites.google.com/site/kernelvm/ima-made-no-matome/di-qi-hui-kaneru-vm-tan-jian-duiスライドhttp://shinh.skr.jp/slide/nacltcc/000.html金曜の夜…というか土曜の3時くらいになんか話しませんか offer をいただきました。せっかくだからなんか喋…

整形前のコードについてもう少し書いておきます。アーキテクチャ依存なこととか実行順序依存なことをしたくなかったのと、こんな長いコードを本気ゴルフするのしんどいということで、あまりまじめにゴルフしてません。ビット演算でがんばるということで、 64…

20th IOCCC 入賞

結果が公開されました。http://ioccc.org/years.html#2011私のコードは、こういうピクロスソルバでした。 #include<stdint.h>// 4 #include<stdio.h>/* 76. 1 ..2321 1 57 3 21.... . .. .11 1 2 1 88..1321 2 33 5512 1 277 14 1 099..12.... . .. .... 1 4 11111...111 122 5.</stdio.h></stdint.h>…

引数無し

もできた。スタックの伸びる量に依存しててひどいのと、この方針じゃ途中で 1+2+3+ とか表示できないのがまだ難点。http://ideone.com/iIjR9で、途中で 1 から 100 まで表示できるのも作れる気がしてるんですけど、しかしそれは真剣に難しいと思うんだよな…h…

変数無しで 1 から n までの合計を求める

という問題を id:ranha さんに教えてもらいました。色々考えてて、標準ライブラリ使っちゃうと errno 使うとか、状態持つ関数 (strtok とか sbrk とか、あげくの果てには getenv/setenv) 使うとかで、割と簡単にできてしまうように思ったので、出力以外の関…

プチコンで遊んでみる

http://smileboom.com/special/ptcm2/html_first-beginner.php要は昔ぽい BASIC が DS で動きます、っていう。昔ぽいて言ってもスプライトとかあるし、 MSX のとか TOWNS のくらい、って感じなのかな。というかそれよりちょっとリッチな気がします。なにかし…

Sound Predictive Race Detection in Polynomial Time

http://users.soe.ucsc.edu/~cormac/papers/popl12a.pdfあまりきちんと理解できてないけど、ざっと読みました。以下間違ってることが普通にあるかもしれません…さて、 race detector はむずかしいと思う。本質的に難しいっていうより、なんかあまり他と接点…

たのしいプログラミング

Google Code Jam Japan 2011 T シャツまわりのヨタ話をした時のスライドがここにあげてあったのを、書き忘れてました。http://shinh.skr.jp/slide/tanopro/000.htmlそういえばTシャツのページについて、「コードだけ書いて説明は他の人が書いたのかと思った…

第6回JVMソースコードリーディングの会

http://www3179ua.sakura.ne.jp/events/5130d540-436b-4b89-9d2d-1fa884b9625cキャンセルをキャンセルできなかったけど、とりあえず近いから行ってみたら参加できて良かった。Concurrent Mark and Sweep な話。 GC の仕組み自体はなんとなくわかった気になっ…

TLE

http://felicity.iiit.ac.in/tle/ranks2位。やや気合が入ってない感じだったものの、気合い入っててもこれはだめだったなーてくらいには kinaba さんに負けた感じでした。1日だけというのは、一度スピードゴルフみたいなのやってみたいな…とか思ってたのでど…

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