Program

x86-64 最適化勉強会2

http://atnd.org/events/19140前回同様楽しかった。「x86/x64最適化」とかいう極めて限定的なタイトルで第2回とかになったことにびっくりですが、驚くべきことに第3回をやるつもりらしいですね…奥が深い。 86 か最適化のどっちか落としてもキツそうなのに…ど…

Fault Detection in Multi-Threaded C++ Server Applications

http://valgrind.org/docs/muehlenfeld2006.pdfを読みました。 helgrind をちょっとよくしたよ、って人が書いた論文、だと思います。先に結論書いておくと、わりとがっかりな感じでした。 race detector がどう動いてるかわかったのは収穫ですが、もうちょい…

atomic operation どころか mutex もわかってなかったという話

read write lock ってものがあります。 pthread だと pthread_rwlock_t 。コレの私の思ってたセマンティクスは以下のようなもんです。 writer lock を取ると普通の mutex lock みたいな感じ。その thread が unlock するまで、以降の reader lock と writer …

valgrind 論文読んだメモ

時々 valgrind はオーパーツだとかそういう主張をしてたりします。コードとか論文とかチラ見くらいはしてたのですが、まあちゃんと眺めてみたのでメモ。Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentationhttp://valgrind.org/docs/valg…

ICFPC 2011

http://www.icfpcontest.org問題は例年通り面白い…とかいう次元じゃなくて無茶苦茶よくできてるなーと思った。感動的に。L:tG とかいう対戦型カードゲームの AI を書く。 M:tG に名前似てるけど、デッキとか作る感じではなくて、15枚のカードをいつでも使え…

TCO Marathon Match Round 2

70-80位くらいなので一応 Round 3 にはいけるかな、って感じ? 全力を尽くしたかっていうとそんなことないけど、しかしそれなりに時間使ったわりにはイマイチだった…問題は適当に大量の点が与えられるから、それをつないで正多角形に近いものをたくさん作るこ…

TLE 優勝

最初から最後まで全力でがんばりました。8問あって、1問は誰も解けなかったので全7問で、そのうち6問がトップなので割と文句なく1位です。最初の方は期間が2日しか無い予定だったのでとりあえず問題を全部解くのを重視してやってて、後の方は3日に期限がのび…

dissimilar cyclic quine

以下の ruby コード A を実行すると別の ruby コード B を出力します。で、その出力されたコード B を実行するとまた元のコード A を出力します。かつ、コード A とコード B は同じキャラクタを含んでいません。 eval q=%q(puts ('DIGGB%sB'%(('eval q=%q('+…

raw_write.h

よく、 libc の関数呼べるかどうかはあやしい部分を printf デバッグしたいことがあると思います。あるんですよ!そういう時にシステムコールってどう呼ぶんだっけ…みたいなことを調べたり、ええと数字を出力したい…とかいうのは結構かったるいので、 #includ…

TCC の話の追記

http://d.hatena.ne.jp/shinichiro_h/20101217#1292521642のスライドは ELF のあたりから前の晩に適当に書いたとかなので、正直気合い入ってないというかグダグダというか ELF の話をすると言いつつ ELF の話が無かったりして、ひどかったです。まあやってか…

TCC とか x86-64 とかの話

を会社でしたのでそのスライドを置いておきます。http://shinh.skr.jp/slide/tcc64/000.htmlいつかこういうのまとめたいなあと思っていたのですが、特に後半とか色々グダグダになったり、記憶が消し飛んでて何に苦労したか忘れていたりと、まぁ色々適当にな…

GCC Compile Server

http://per.bothner.com/papers/GccSummit03/gcc-server.pdfを読んでみました。7年前の話で、かつ今実現してる気配がないので失敗したんでしょうけど、まぁコンパイラの state を再利用するには何をしなければならなくて、何が難しいか、みたいなことがざっ…

StringPiece というライブラリの話

例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, s…

MikuMikuDance 遊び

MikuMikuDance のデータについて結構 web に情報があるみたいだったので、適当に parser 書いて 2D canvas とか WebGL で動かして遊んでみて、 SDL off 2010 summer で紹介してみたりしました。で、動く URL にリンクはろうかと思ったんですが、よく考えると…

alphabet only quine

も簡単。 s zz xor print lc q ys ZZy xor print xor print lc q yZy xor printz xor print lc q ys ZZy xor print xor print lc q yZy xor print

s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeCon vertsAnyPerlCodeIntoAlphabetOnlyPerlCY Xe xor s XXchr length q YThisPerlC odeConvertsAnyP…

C1X

なんか tgmath.h について調べてて、 GCC 拡張にある type generic macro をサポートする機能を C に入れてはどうすかという提案があることに気付きました。http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1404.htmでなんか C1X ってどういう感じなのか…

tgmath.h の話

このプレゼンで紹介した tgmath.h の実装が素晴らしいという話なんですが、資料は口頭で説明する前提すぎて、イマイチ詳しくないので別に書いておこうかなぁと思います。これは C で型計算やってると言えると思うのでなかなかなもんなのです。そもそも tgmat…

コードを愛でる話

今まで見たり書いたりしたトリッキーなコードというか hacky なコードを適当に紹介するプレゼンを作ったので置いておきます。http://shinh.skr.jp/dat_dir/mederu/000.html書いてみて思ったのは、なんか結構今までにメモってないトピックがあったなーという…

symmetric hello

見た目が対称ってのはどうかなぁと思って作ってみました。端末で見やすくしたくて、横幅を 80 文字以内におさえようとしてたら、何故か横幅ゴルフみたいな感じになってきて無駄に細くなりました。 ______={}//\\{}=______ _=+[]//\\[]+=_ ______.___=""+[][+…

回文

http://d.hatena.ne.jp/TAKESAKO/20100519/1274240074回文ってのは一行コメントある言語だとゴルフでもしない限り自明すぎてどうでもいいわけですけど、一行コメントが無い言語とかだとそれなりに面白くて、 OCaml なんかだと ksk さんが \ をうまく使ってお…

LLVM hackathon

http://atnd.org/events/4295書いたのだけどはるの忘れてた。行ってきた。 tanakh さん主催ごくろうさまでした。現状ではイマイチ使い道が…みたいな雰囲気は以前見た時からあまり変わってないかなぁと感じた。でもなんか前見た時よりは bit code の instruct…

GC本読書会

記憶をダンプ。どれも別に本当に正しい議論であるかは不明。もっと重要な論点とかあったら教えていただければとてもうれしいです。 「GCってスループットvsレイテンシってよく言うわけですけど」 「実際 GC する言語でスループット欲しいとか思ってるユーザ…

TLE

なんか問題作るの手伝うとか言いつつほとんど何もしなかったものの私の出題の問題もあるしなーという微妙な状況だったのですが、良ければテストしてちょ、と始まってから言われたので、適当に参加した。ちょうど入賞圏外の4位というのはうまいところにおさま…

bfint.bef

http://twitter.com/syuu1228/status/7983144593を見て、うーんこれhttp://fi.muni.cz/~xgoljer/bf.txtそんな難しいんかいなややこしすぎなんじゃないか…とか思って、書いた。 v >0>:#v~:3/9-2-!#v_v ^ +1p1\ < v1\0$< $< p 0v+1 p0g00+g0g00+1< -2< >v+1 p0…

人材獲得作戦.sed

http://okajima.air-nifty.com/b/2010/01/post-abc6.html適当に sed で解いてみた。サイズ決め打ちで書いたら割と簡単だった… H ${ x # initialize seen positions h x s/.\(.\{25\}\).S.\(.\{25\}\)./*\1***\2*/ x # initialize initial state of the queue…

multix.rb

http://github.com/shinh/multix/blob/master/multix.rbBoost.MultiIndex とかのはなし…は聞いてないんだけどスライドを見て、そういやこういうの Ruby こそ欲しいようなそうでもないような…ということで適当に書きました。途中でやる気が尽きたので、使いも…

情報科学苦手の会

という素敵な会があったので行ってきた。http://groups.google.co.jp/group/nigate私もなんか発表とかしました。 C++ の吐く機械語ってどうなってるのとかいう話だったので、まぁそんなに違うんじゃないかなーとスライド作ってみたら、意外とたくさん違いが…

DWARF の行情報を読む

なんか行情報読むとかそいう話題が twitter にあったので、適当に作ってあったのでなんか書いてみる。http://github.com/shinh/test/blob/master/addr2line.ccDWARF 情報つけると (今の GCC だと -g でつくと思う) アドレスからコードの名前を行番号をひける…

qif2.rb

http://d.hatena.ne.jp/ku-ma-me/20091116/p1なんか qng 見た時に GIF でやってみるかなーと思ってたんだけど mame さんがやってしまったので、パクリです。http://shinh.skr.jp/obf/qif2.gif eval(q=%(require'zlib';c='eJxNUkFv40QUngZLa43Q1 oceOHBwJ3Vix…

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