Program

hh.gif

7割くらい書いたところで存在を忘れていました。http://slashdot.jp/sp/binary2008/bin2008_shinh.shtml何かに使えることがあるかもだから(無いと思うが) com2txt 書いとくかーと書いたのでした。オリジナルの com2txt は短すぎないか。 base64 よりはちょっ…

任意の Ruby プログラムをアルファベットと数字だけにするプログラム

このコード を見ていて書けることに気付いた。 puts <

Quine いろいろ

Quine の難しい点はたぶん、 自分自身を出力しようとして永久に書き終わらないよギャース クォート文字列中にクォート文字を入れられないよギャース という2点じゃないかなぁと思います。前者は変数を使えば簡単です。後者はクォート文字をエンコードできる…

fizzbuzz7.gif

なんかブックマークに golf とかいうタグがついてるのが目に入って、ゴルフなんてロクにしてないのになぁとか思って、ちょっとゴルフして1言語足してみました。具体的には Befunge 。http://shinh.skr.jp/dat_dir/fizzbuzz7.gif前回との差分としては、 Perl …

fizzbuzz.gif こたえ

http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/shinichiro_h/20081011%231223722332http://d.hatena.ne.jp/shinichiro_h/comment?date=20081011#cやった解答してくださる方がいた!それはともかく答えは "Fizz Buzz" と書かれた GIF (末尾に 3B ゴミが…

fizzbuzz.gif

もんだいです。このファイルはなんでしょうか。http://shinh.skr.jp/obf/fizzbuzz.gif

select の semantics

なんか要は select で write 待ちしてる時に、帰ってきた file descriptor に何バイトまで書けるか、という話。http://shinh.skr.jp/m/?date=20081008#p01のへんに適当にはったりしたリンクによると、ポータビリティ考えるなら非同期使え、ってのが明らかに…

デバッガとスレッドとイベント

実行パスが一つしか無くて、ユーザやらネットワークやら、外部とのインタラクションもブロッキングして読んで問題ないようなプログラムならいいんですが、まぁなんかそうもいかないことも多く、そういう時はスレッドやら select/epoll やら使ってごにょごに…

zhistory を可視化

コマンドライン履歴のグラフ化 は別に監視システムがなくても、 zsh の history を無限に残してるような子だったら誰でもできるなぁと思って手軽にできる物体を作りました。http://shinh.skr.jp/koneta/zhistchart.tgz生成物: http://shinh.skr.jp/koneta/zh…

quine.grass

えっと… > la quine.grass -rw-r--r-- 1 i 164M Sep 10 04:13 quine.grass完成してる気はするんだけど…としばし悩む。 grass.rb は終わらない…とりあえず速そうな処理系ということで、 Java の…はなんかコンパイル失敗したので、 YTさんのOCaml版を採用。 i@…

LLVM勉強会

行ってきました。大変楽しかった。適当にベンチ取って結果発表したのでそのスライド置いときます。現地で作ったけどやはり mkp.rb は性にあうなぁ。http://shinh.skr.jp/llvmbench/000.html何が言いたいかよくわからんけど、言いたかったことは SSA 大変だけ…

valgrind (1)

valgrind コマンドを叩くと普通に main が動きます。 main は coregrind/launcher-linux.c にあります。ごちゃごちゃと環境を調べたり tool を調べたりした後、情報を残すために環境変数をいじったりした後、即 tool を execve して終了します。で、 tool な…

Symbolic Polyglot

久々に優雅な時間を過ごしました。もう少し縮みますけど見た目を優先した面もあり。http://ja.doukaku.org/comment/7271/まめさんの偉業を見てから二大チューリング完全言語の共演を見たかったのでした。Symbolic Polyglot Quine とかもできるだろうけど大変…

Rubygrind

あんま深く考えず valgrind を Ruby の head のテストに適用してみたところ、結構もにょもにょ漏れてるもんだなぁと気付いたので、いくつか修正してみたりしたのですが、その時案外困るのが、リークする最小のコードが簡単に作れない、ってことでした。 valg…

valgrind で main 奪う

ことほどさように main は全人類の至宝 LD_PRELOAD をもってしても簡単に奪えないということは、 main 蹂躙厨の間では有名な事実なのですが、 valgrind 使うと割に簡単なことに気付きました。いつも通り Hello, world を書きます。 #include <stdio.h> int main() { p</stdio.h>…

「遅い部分は C で書き直せ」はウソだった! という話

http://d.hatena.ne.jp/Gimite/20080802/1217647596でちょっと思い出した、前からやってみたかった実験をやってみたらだいたい思った通りな感じだった。 class Fixnum def times i = 0 s = self while i < s yield i i += 1 end end end s = 0 1000000.times…

main_hook / sdlboot / libGPL

前回の話は解決案1 が MacOSX でできました。この中に入ってる sdlboot の方がまぁ完全性は高いんじゃないかなーと思います。使いかたはだいたい同じ。http://shinh.skr.jp/binary/main_hook.tgzでついでに main_hook というライブラリにしておきました。 CP…

SDL + MacOSX + any lang

たぶん SDL + MacOSX の非 C で起きる問題を解決できそうな方法を実装してみました。とりあえず MizuGame (C#) 動いた。http://d.hatena.ne.jp/fslasht/20080804#1217853380下記のファイルをhttp://shinh.skr.jp/osxbin/sdlboot.tgz展開して出てきた sdlboot…

GCC plugin branch

前回: http://d.hatena.ne.jp/shinichiro_h/20080803#1217701533GEM のこと見てたら plugin branch なんてあるんだなーと気付きました。 GEM 同様実装はすごい簡単で、要所要所で適当に dlopen した共有オブジェクトの関数呼ぶだけみたいです。技術的には全…

Ruby じゃない GEM

http://www.atdot.net/~ko1/diary/200807.html#d17こういうのはえーと GEM とかあったような(無論名前とか覚えてなかったけど)…ということで遊んでみました。 GEM って何かっていうと、まぁ GCC のそこらこちらに適当にフックがかけられるようになってるとか…

pbgd

前回の pbg をネットワーク制御…とかやってたらなぜかプレゼンになってごちゃごちゃしてきたという物体のソースコードを置いておきました。http://shinh.skr.jp/gl/#pbgdビルドは至難の技ですすいません。仮にできたとしたら sazanami-gothic.ttf とか置いて…

SGC

色々あって GC に興味がちょっと出たので色々見てました。とりあえずまとまった日本語資料としては以下の PDF が一番良いように思いました。 kinaba さんがちょっと前に言及しておられたえんどう豆的でない方の遠藤さんが書いた文章らしい。http://matsu-www…

SDL2008夏

行ってきました。http://gonypage.ddo.jp/wiki/hiki.cgi?Sdl2008SummerOff色々ダメだった: 準備手伝おうと早めに出たけどなんか銀座線とか乗ってて遅れた プレゼン喋ること考えてなかった ash トンネリングになんか失敗した 金持ってなかった 適当な経路で帰…

ICFPC 2008

面白かった。去年一昨年の方が気合い入りっぷりといい楽しかった気もするけど、こっち路線の問題としてなら(つまり去年一昨年を例外とすると)今までやった中で最高だったです。問題はすごい簡単だけどいくらでもやり込める、っていうのがすごいいい問題だと…

トランポリン

http://d.hatena.ne.jp/hayamiz/20080629/1214745930これはきっと shiro さんがすごく面白いコメントを書いてくださるんだろう…と思ってたけどそうでもないみたいなので、まとまりのない話を書く。まずなんか「なんでも継続」にあるhttp://practical-scheme.…

今週の Yajit

definemethod や defineclass をそれっぽく実装したのがメインかなぁと。他にもなんちゃら array とかそのへんを適当に。http://shinh.skr.jp/tmp/yajit.tgzあとは throw やればそれなりにコードが動く気がする。

Mac OSX 10.4 で x86_64 な Ruby 1.9

なんか 64 bit バイナリが走るのは Mac OSX 10.5 から…って思い込んでたんですが、 10.4 でも大丈夫だったと気付いたので、 Ruby をビルドしてみました。基本的には、 make CFLAGS='-fPIC -O -g -m64 -arch x86_64' LDSHARED='cc -m64 -arch x86_64 -dynamic…

Rubydiff

Ruby のバージョン間の違いを適当に表にしました。http://shinh.skr.jp/koneta/rubydiff.htmlid:rubikitch さんのコードをいじって作りました。http://d.hatena.ne.jp/rubikitch/20080507/1210091458あとゴルフ場の Ruby を 1.8.7 にしておきました。コード…

Yajit (3)

つーわけで yajit アップデートしときました。http://shinh.skr.jp/tmp/yajit.tgzやったことは 上に書いてある OSX の件 putself をいい加減に修正して const をいいかげんに実装したので benchmark モジュールが動くようにした expandarray 実装したから a,…

__dyld_stub_binding_helper_interface で落ちてた件

状況としては、「yajit がコンパイルしたコードが yajit 内の関数を呼んだ後で libruby の関数を呼んだ場合にのみ」に落ちるというもので、 gdb で落としてみると、 Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand. 0x8fe13184 …

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