ToDo:
http://knagano.seesaa.net/article/10112354.html
http://firewood.txt-nifty.com/bbc/2005/12/introduction_to.html
(02:17)
http://d.hatena.ne.jp/oto-oto-oto/20061114/1163524011
WA がヒントでした
とかこうなんていうかつまり
http://shinh.skr.jp/m/?date=20061107#p26
をはやくやらないと
(03:19)
こまるなあ、まじで
http://d.hatena.ne.jp/w_o/20061114#p2
> アセ
この push 命令は 68 02 00 03 00 とかそんなんが入ってるわけですが。
> 15分
僕も終わるとは思えません。 なんせ b2con よりでかい。
i@u ~/wrk/b2con> wc b2con.hiki 422 749 7449 b2con.hiki i@u ~/wrk/b2con> wc ../binhacks/fsij.txt 805 1166 10121 ../binhacks/fsij.txt
どどどうしよう
でなんかつまりこのメール投げたら コメントに投稿しつつこっちにも 残るようなシステムが欲しいと言ってるわけですよ。 でそれをまぁ今度作ると
ていうかトラバってその用途に使うんじゃとか
あとなんていうか僕プレゼンとか あんましたことないわけで
時系列全然覚えてなくてびびった
あとなんかとりあえず寝る努力を
(04:11)
(04:16)
(04:38)
(07:41)
http://www.jmuk.org/d/?path=2006/11/14#d14t01
僕なら tr かな
irb(main):002:0> 'abcdefghijklmnopqrstuvwxyz'.tr'kaze','' => "bcdfghijlmnopqrstuvwxy"
(08:28)
http://d.hatena.ne.jp/higepon/20061114/1163517868
http://d.hatena.ne.jp/shinichiro_h/20060829#1156830996
ついでに cc1 を自分で呼び出す練習
i@u ~/test> gcc not_reached.c -Wall not_reached.c: In function 'main': not_reached.c:6: warning: control reaches end of non-void function i@u ~/test> cpp -CC not_reached.c | /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -Wall - not_reached.c: In function 'main': not_reached.c:6: warning: control reaches end of non-void function i@u ~/test> cat not_reached.c | /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -Wall - <stdin>: In function 'main': <stdin>:6: warning: control reaches end of non-void function
うーんどう見ても cc1 は cpp 持ってやがるな
i@u ~/test> /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 --help |wc 1067 6246 68786
すごい読みごたえありますね!
(11:04)
i@u ~/test> cpp -CC not_reached.c | /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -Wall -fpreprocessed - not_reached.c: In function 'main': not_reached.c:6: warning: control reaches end of non-void function i@u ~/test> cat not_reached.c | /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -Wall -fpreprocessed - <stdin>:1: error: stray '#' in program <stdin>:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token <stdin>: In function 'main': <stdin>:4: warning: implicit declaration of function 'my_exit' <stdin>:6: warning: control reaches end of non-void function
(11:05)
について思うのは、 これは本当にすごいものだなと思うんだけど、 本当にこれ限界なのかなとかそういう。 エレガントに詰まりすぎてるというかなんというか。 ただ俺じゃあ全然手が出ないんだよなぁ。 今日は repne scasb とか書こうとして 簡単には書けなかった。
とりあえず intel のドキュメントは印刷すること
(02:44)
浜地です。 その件につきましては、今週中になんとかします。 # できれば明日中には…
浜地です。 その件につきましては、今週中になんとかします。 ;; できれば明日中には…
浜地です。 その件につきましては、今週中になんとかします。 (* できれば明日中には… *)
>+++++++[<------->-]<------.++++.>+++[<--->-]<-.>+++[<++++>-]<.>++++++[<------->-]<-.>+++++[<+++++++>-]<.>+++++[<------->-]<.>++++[<+++++>-]<+.>++++[<------>-]<.++.>++++++++++[<++++++++++>-]<+++..>++++++++++[<---------->-]<--.>+++++[<+++++>-]<.>+++++[<----->-]<.>++++++[<+++++++>-]<.>++++[<----->-]<---.>+++++++[<++++++++>-]<.>++++++++[<--------->-]<---.>++++++[<++++++>-]<+++.>++++++[<------>-]<---.>+++++[<++++++>-]<++.>+++++[<------>-]<--.>+++[<+++>-]<.>+++[<--->-]<.>+++++++[<++++++++>-]<++.>+++++++[<-------->-]<--.>++++[<++++>-]<+++.>++++[<---->-]<---.>+++++[<++++++>-]<++++.>+++++[<------>-]<----.>++++++[<+++++++>-]<+.>++++++[<------->-]<----.+.>++++[<++++++>-]<.>++++[<----->-]<---.>+++++[<+++++>-]<+.>++[<---->-]<.>+++[<++++>-]<++.>+++++[<+++++++>-]<.>++++++++[<-------->-]<--.>++++++[<++++++>-]<+++.>++++++[<------>-]<---.>++++++[<++++++>-]<++.>++++++[<------>-]<--.>++++++++[<+++++++++>-]<+++++++.>++++++++[<--------->-]<-------.>++++++[<++++++>-]<.>++++++[<------>-]<.>++[<+++>-! ]<+.>++[<--->-]<-.>++++[<++++>-]<+++.>++++[<---->-]<---.>+++++++[<++++++++>-]<++.>+++++++[<-------->-]<--.>++++[<+++++>-]<+.>++++[<------>-]<.++.>++++++++++[<++++++++++>-]<+++..できれば明日中には…
(03:47)
http://blog.livedoor.jp/dqnplus/archives/850456.html
354の人がすてき。 この人見るとなんとも思ってなかった 転売人が悪い子に見えてくる
(05:58)
普通に SCEI 大丈夫なんか
http://www.nikkansports.com/general/p-gn-tp0-20061112-115959.html
(06:26)
http://www.atdot.net/~ko1/diary/200611.html#d14
メソッドディスパッチじゃなくて 「Ruby の高級な機能」が重いってのは勉強になった。
引数も括弧もないから…とかの例を読んで、 Language Shootout と最下位と引き換えに Code Golf 最上位ならいいじゃない…とか。
ていうか僕の経験では YARV むっちゃはやいんだけど
(12:42)
(17:10)
渋谷ブックファーストで売り切れてるそうなんですが。
http://bsoup.skr.jp/slide/?date=20061114#p01
しかしそういえば生協書籍部には普通に平積みになってた。
(22:13)
http://d.hatena.ne.jp/w_o/20061112#p3
なんか相当に恣意的な例なような。 これ restricted つけようが何しようが 本質的にコンパイラが何しても最適化不能… じゃないのかな。
(01:36)
なぜなら絶対に副作用があるから。
もっとキワどい例ないのかな。 malloc の方は例としてわかりやすいんだけど。
つまり、 本質的に消せるのにコンパイラには消せない ムダなコードの方が適切なんじゃないかなぁみたいな
(01:45)
つーわけで ukai さんと wo さんのオマケで喋ることになりました。 内容は ELF Golf のはずですが プレゼンツール作ってる有様では 何が起きるかどきどき。
(03:01)
116B の綺麗なコード
BITS 32
org 0x00000000
db 0x7F, "ELF" ; e_ident
db 1,1,1,0
dd 0,0
dw 2 ; e_type
dw 3 ; e_machine
dd 1 ; e_version
dd _start ; e_entry
dd phdr - $$ ; e_phoff
dd 0 ; e_shoff
dd 0 ; e_flags
dw 52 ; e_ehsize
dw 32 ; e_phentsize
dw 1 ; e_phnum
dw 0 ; e_shentsize
dw 0 ; e_shnum
dw 0 ; e_shstrndx
phdr: dd 1 ; p_type
dd 0 ; p_offset
dd $$ ; p_vaddr
dd 0 ; p_paddr
dd filesize ; p_filesz
dd filesize ; p_memsz
dd 7 ; p_flags
dd 0 ; p_align
hello: db "Hello world!", 10
_start:
lea EAX, [EDI+4] ; write = 4
inc EBX ; stdout = 1
mov ECX, hello
lea EDX, [EDI+13] ; strlen = 13
int 0x80
xchg EAX, EBX ; exit = 1
xor EBX, EBX ; exit(0)
int 0x80
filesize equ $ - $$
(07:34)
BITS 32
org 0x00000000
db 0x7F, "ELF" ; e_ident
db 1,1,1,0
dd 0,0
dw 2 ; e_type
dw 3 ; e_machine
dd 1 ; e_version
dd _start ; e_entry
dd phdr - $$ ; e_phoff
dd 0 ; e_shoff
dd 0 ; e_flags
dw 52 ; e_ehsize
dw 32 ; e_phentsize
dw 1 ; e_phnum
dw 0 ; e_shentsize
dw 0 ; e_shnum
dw 0 ; e_shstrndx
phdr: dd 1 ; p_type
dd 0 ; p_offset
dd $$ ; p_vaddr
dd 0 ; p_paddr
dd filesize ; p_filesz
dd filesize ; p_memsz
dd 7 ; p_flags
dd 0 ; p_align
hello: db "Hello world!", 10
_start:
mov AL, 4 ; write = 4
inc EBX ; stdout = 1
mov CL, hello
mov DL, 13 ; strlen = 13
int 0x80
xchg EAX, EBX ; exit = 1
xor EBX, EBX ; exit(0)
int 0x80
filesize equ $ - $$
58B を解読してて、 16bit レジスタへの命令を忘れてた マヌケさというか x86 への愛の足りなさに ほげほげとか思いつつ
(09:12)
apt-get というツールがあって、
apt-get install パッケージ名
でインストールするわけだけど、 このパッケージ名にカンで名前を入れて あってるとすごく嬉しい。
だからどうしたと
(19:22)
http://mixi.jp/view_bbs.pl?id=907603&comment_count=16&comm_id=42608
http://plaza.rakuten.co.jp/superman81/
EPR光子対がカギらしい
(20:32)
2800 と 2403 通した。
メモリンク
http://acm.pku.edu.cn/JudgeOnline/status?result=0&user_id=shinh
http://acm.pku.edu.cn/JudgeOnline/status?result=0&user_id=tyos
差分楽に取れねえかなぁ。
(23:48)
http://www.youtube.com/watch?v=rTJhUAwD8Bo
via http://yowaken.dip.jp/tdiary/20061112.html#p02
うーんDSのはこいう回転法則なんだなぁ…
(06:03)
生きていてもいいですかとか わりと微妙なアルバムに思うのだけど…
http://music.hatelabo.jp/track/%E4%B8%AD%E5%B3%B6%E3%81%BF%E3%82%86%E3%81%8D/
まぁネタかなぁ
(07:49)
http://d.hatena.ne.jp/tkng/20061110/1163187966#c
http://www.atdot.net/~ko1/diary/200611.html#d12
おもしろそー
(17:02)
(19:19)
(19:27)
59Bとかできちゃうんだねぇ… 文字列が壊れてるのは fall through の最中に戻すだけで どうせ末尾についてるに違いない。
よって
んー
なんか末尾に入れるとすると、 46B目から詰めはじめたとすると60Bいっちゃうじゃん。
実行時に H 作ってるんかなぁ…
(00:54)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2800
がさっぱり解けない。
TLE 出るならわかるが WA つーのは。
(02:45)
http://0xcc.net/binhacks/quiz.html
問題作らずに自分で楽しんでどうする。
INT_MIN と INT_MAX 見間違えた
それ以外はスタック増加方向と シグナル/スレッドセーフまちがえた。
(03:26)
org 0x00200000 と org 0 では全然 p_*sz への constraint が違う。 0 だとむっちゃきびしい。 まぁ kik さんとこ見てだいたい把握した気はする。
あしたがあるさもうあしただが
(06:14)
http://d.hatena.ne.jp/kikx/20061111
とりあえずうちでも動きましたよーあたりまえですが。
もうちょい自分で考えるかなぁ と思ったけど こりゃー自分で作れる気がしないにゃー というのとオーバーラップの位置考えるのがめんどいので見よかな。
うん見よう。
そこか昨日そこしかないかなぁと 思って寝たんだったけど あんだけヒントもらっちゃそらわかる感。 で、 He まで混じってるので、 こりゃすげえ。 自分でできる感じ全くしねええええええええええ
x86 つーか任意の機械語全然知らんなぁ…
(15:52)
----------
/ \
/ REST \
/ IN \
/ PEACE \
/ \
| shinh |
| |
| yaruki nai |
| dakara shinda |
| |
| |
| 2006 |
*| * * * | *
_________)/\\_//(\/(/\)/\//\/|_)_______
Goodbye shinh the yaruki nai zeeeeee...
(16:29)
def rip(name,skill, res1, res2)
<<END
<pre>
----------
/ \\
/ REST \\
/ IN \\
/ PEACE \\
/ \\
|#{name.center(18)}|
| |
|#{res1.center(18)}|
|#{res2.center(18)}|
| |
| |
| 2006 |
*| * * * | *
_________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______
Goodbye #{name} the #{skill}...
</pre>
END
end
2006 で固定つーのも僕の時はもう進まない、みたいな
(16:32)
\ と \ の区別がないなんて、 そんなかわいそうな環境だったら \ 高 \ 安とかどっちも区別つかねー て感じですか。 なんてかわいそうな。
上の文章はウソです。 ぜんぶ \ です
(16:35)
http://mixi.jp/view_community.pl?id=275305
via http://www.jmuk.org/d/?path=2006/11/09#d09t02
(01:52)
1st tybalt89 56 Perl 10,000 (v2) 2nd kinaba 67 Perl 8,358 (v11)
来たみたいですね…
(02:20)
なんせまずオーバーラップのしかたからしてたぶん違う。
一番短いアレは
BITS 32
org 0
db 0x7f, "ELF" ; e_ident
phdr: dd 1 ; p_type
dd 0 ; p_offset
dd 0 ; p_vaddr
dw 2 ; e_type ; p_paddr
dw 3 ; e_machine
dd filesize ; e_version ; p_filesz
dd filesize ; e_entry ; p_memsz
dd phdr ; e_phoff ; p_flags
dd 0 ; e_shoff ; p_align
dd 0 ; e_flags
dw 0 ; e_shsize
dw 32 ; e_phentsize
dw 1 ; e_phnum
dw 0,0,0
filesize equ $ - $$
これが原形。 これはすごい綺麗に重なってるけど、 e_phoff と p_flags がうまくいかんのだよね。 パーミッションがあわん
(05:18)
i@u ~/wrk/binhacks> nasm tiny.asm i@u ~/wrk/binhacks> la tiny -rwxr-xr-x 1 i 64 2006-11-10 05:22 tiny* i@u ~/wrk/binhacks> ./tiny zsh: no such file or directory: ./tiny
(05:22)
i@u ~/wrk/binhacks> ./hello73 Hello world i@u ~/wrk/binhacks> la hello73 -rwxr-xr-x 1 i 70 2006-11-10 05:47 hello73*
(05:48)
愛が足りないですね…
i@u ~/wrk/binhacks> nasm hello73.asm i@u ~/wrk/binhacks> la hello73 -rwxr-xr-x 1 i 65 2006-11-10 07:16 hello73* i@u ~/wrk/binhacks> ./hello73 Hello world
(07:16)
繰り返しになるけどそもそも現行方針は64Bが打ち止めなわけで。
(07:23)
http://d.hatena.ne.jp/kikx/20061110#1163114535
irb(main):005:0> 52-6+14 => 60
どこに Hello, world!\n 入ってるねん。 あとまぁ 1B ずつずらすのは考えたんですけど、 前考えた時はどこにも入らんという結論だったのと、 今回はすぐ頭が痛くなって日和ってますた…
(14:23)
ヘッダの意味を勘違いしてるみたいだ。 有力候補は p_offset とか p_filesz 。
図をぱくらせてもらって考えてた。 s はでかい値だとダメで上の2つは 0 じゃないとダメだったはず…
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
ここから 2B は同じくダメ。
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
次の 1B もそう。あ、 p_offset もだめな気が。
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
次の 2B もそう。
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
これしばらく続く。
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
これもちょいと続くよ
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
しばらく続いて、
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
これも続いて、結局、
00 04 08 0C 10 14 18 1C 20 24 28 2C 30
7f 45 4c 46 ** ** ** ** ** ** ** ** ** ** ** ** 02 00 03 00 ** ** ** ** SS SS SS SS PP 00 00 00 ** ** ** ** ** ** ** ** ** ** 20 00 01 00 ** ** ** ** ** **
01 00 00 00 oo oo oo oo VV VV VV VV ** ** ** ** ss ss 00 00 mm mm mm mm *7 ** ** ** ** ** ** **
これじゃあ64Bが限界。
まぁどっかに勘違いがあるなり
(15:01)
http://d.hatena.ne.jp/kikx/20061110#1163148475
どこが普通やねんと…!
にしてもどこで止まってるんだろう。 kernel オプションとかだとすると p_flags 以外で止まるか止まらんか差があるってのもアレだなぁ。 strace してやるとだいたいどこで止まったかは 予想がつくものですが。
うちだと
とかだった気がします。 いや全然覚えてないぞ…!
なんにせよそのサイズで ヘッダに命令埋めつくしたのはすごいです…
(17:58)
76B はどこでも動くんだけど。
i@u ~> uname -a Linux u 2.6.17-10-generic #2 SMP Fri Oct 13 18:45:35 UTC 2006 i686 GNU/Linux
これが作業環境。
i@u3 ~/t> uname -a Linux u3 2.6.7-1-386 #1 Thu Jul 8 05:08:04 EDT 2004 i686 GNU/Linux i@u3 ~/t> la hello73 -rwxr-xr-x 1 i 65 2006-11-10 18:01 hello73* i@u3 ~/t> ./hello73 zsh: killed ./hello73
ぎゃー 65B のヤツが動かない。 65B のヤツは p_filesz と p_memsz に侵食してるから、 そこの制約が厳しいんだろうなぁ。
i@u3 ~/t> la ./hello72 -rwxr-xr-x 1 i 72 2006-11-10 18:00 ./hello72* i@u3 ~/t> ./hello72 Hello world
侵食してない 72B はオッケ。
i@un ~/t> uname -a Linux un 2.6.15.4 #1 SMP Mon Feb 27 17:28:54 JST 2006 i686 i686 i386 GNU/Linux i@un ~/t> ./hello73 Hello world i@un ~/t> ./hello72 Hello world
どっちもオケ。しかし hello73 が 65B という罠がひどい。
cf.sf.jp にて。
shinh@cf-x86-linux:~/t$ uname -a Linux cf-x86-linux 2.4.29-blade #1 2005年 3月 22日 火曜日 18:17:12 JST i686 GNU/Linux shinh@cf-x86-linux:~/t$ ./hello73 Hello world shinh@cf-x86-linux:~/t$ ./hello72 Hello world
どっちも動く。俺の誕生日にカーネルビルドするとはやるな。
cf.sf.jp
shinh@cf-amd64-linux:~/t> uname -a Linux cf-amd64-linux 2.4.21-297-smp #1 SMP Sat Jul 23 00:45:13 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux shinh@cf-amd64-linux:~/t> ./hello72 Hello world shinh@cf-amd64-linux:~/t> ./hello73 Hello world
Opteron のマシンらしいね
sf.net のシェルサーバ
[shinh@sc8-pr-shell1]~/t% uname -a Linux sc8-pr-shell1.sourceforge.net 2.6.17.6 #1 SMP Sat Jul 15 16:00:03 PDT 2006 i686 i686 i386 GNU/Linux [shinh@sc8-pr-shell1]~/t% ./hello72 Hello world [shinh@sc8-pr-shell1]~/t% ./hello73 Hello world
-bash-3.00$ uname -a Linux shell.cf.sourceforge.net 2.6.9-42.0.2.ELsmp #1 SMP Wed Aug 23 00:17:26 CDT 2006 i686 i686 i386 GNU/Linux -bash-3.00$ ./hello72 Hello world -bash-3.00$ ./hello73 Hello world
shinh@x86-linux1:~/t$ uname -a Linux x86-linux1 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux shinh@x86-linux1:~/t$ ./hello72 Hello world shinh@x86-linux1:~/t$ ./hello73 Hello world
shinh@x86-linux2:~/t$ uname -a Linux x86-linux2.cf.sourceforge.net 2.6.10-1.771_FC2smp #1 SMP Mon Mar 28 01:10:51 EST 2005 i686 i686 i386 GNU/Linux shinh@x86-linux2:~/t$ ./hello72 Hello world shinh@x86-linux2:~/t$ ./hello73 Hello world
shinh@amd64-linux1:~/t$ uname -a Linux amd64-linux1.sourceforge.net 2.6.9-1.667smp #1 SMP Tue Nov 2 15:09:11 EST 2004 x86_64 x86_64 x86_64 GNU/Linux shinh@amd64-linux1:~/t$ ./hello76 Segmentation fault shinh@amd64-linux1:~/t$ ./hello73 Hello world Segmentation fault shinh@amd64-linux1:~/t$ ./hello72
72Bの方が帰ってこないよ!
全部どっかしらで問題出てるし。 というか 65B のヤツ_だけ_が動く64bit環境ってなにがおきてるの。
ちなみにすげーてきとうにぶっこんだファイル
(18:20)
第一回くやしさまぎらわせ大会
プギャー
1st shinh 82 Ruby 10,000 (v32) 2nd kinaba 83 Perl 9,879 (v16) 3rd kik 83 Ruby 9,879 (v23)
プギャー
2nd primo 50 Ruby 9,200 (v23) 3rd shinh 50 Ruby 9,200 (v17) 4th queball 51 Ruby 9,019 (v3) 5th kik 51 Ruby 9,019 (v5) 6th mame 51 Ruby 9,019 (v2)
とか書くと瞬時に逆転されそうで怖いのであった
(18:40)
ということは、一定ポータブルって条件を入れたら、 64B の Hello world (!,無し) が最短になる可能性が高いんだろうか。 そのくらいの難易度の争いじゃないと 歯牙にもかからん予感…
Debian でコケてた 65B hello73 は、
i@u3 ~/t> readelf -l hello73 readelf: エラー: Unable to read in 0x4b9 bytes of section headers readelf: エラー: Unable to read in 0x972000 bytes of section headers Elf ファイルタイプは EXEC (実行可能ファイル) です エントリポイント 0x20002e 1 個のプログラムヘッダ、始点オフセット 32 Program Headers: タイプ オフセット 仮想Addr 物理Addr FileSiz MemSiz Flg Align LOAD 0x000000 0x00200000 0x04b90001 0x02000 0xd578d01 WE 0xeb9380cd
この MemSiz がでかすぎる模様。
というわけでぶっちゃけこんなのはすぐ調整できる つーか lea 入れかえるだけだった。
; hello65.asm
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
hello:
db "Hello world", 0xa
dw 2 ; e_type
dw 3 ; e_machine
exit: xor EBX, EBX ; e_version
int 0x80
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
_start:
mov ECX, 0x00200004
add [ECX], AL
lea EAX, [EDI+4]
inc EBX
lea EDX, [EDI+0xd]
int 0x80
xchg EBX, EAX
jmp exit
とりあえず今晩はこれを 64B にしよう。
(19:07)
うわさどおり短い問題だ。
i@u ~/wrk/golf> ./golf.rb queen.rb 173 test 1: SUCCESS! 0.000000 0.000000 0.016667 ( 0.017802) test 2: SUCCESS! 0.000000 0.000000 0.016667 ( 0.018432) test 3: SUCCESS! 0.000000 0.000000 0.033333 ( 0.016652) test 4: SUCCESS! 0.000000 0.000000 0.033333 ( 0.016837) 173
(22:58)
NASMも触れんとなぁ、ということで Hello world! 76B を移植。 さらにゴルフしよう
; hello76.asm
BITS 32
org 0x00000000
db 0x7F, "ELF" ; e_ident
db "Hello world!"
dw 2 ; e_type
dw 3 ; e_machine
_start: mov byte [EDI+0x10], 0xa ; e_version ; set "\n"
dd _start ; e_entry ; fall through!
dd phdr - $$ ; e_phoff
lea EDX, [ECX+0xd] ; e_shoff
lea EAX, [ECX+0x4] ; e_flags
mov ECX, EAX
jmp short label1 ; e_ehsize
dw 32 ; e_phentsize
phdr: dd 1 ; e_phnum ; p_type
; e_shentsize
dd 0 ; e_shnum ; p_offset
; e_shstrndx
dd 0 ; p_vaddr
label1: inc EBX ; p_paddr
jmp short label2
db 0
dd 76 ; p_filesz
dd 76 ; p_memsz
db 0xff ; p_flags
label2: int 0x80
xchg EBX, EAX
xor EBX, EBX ; p_align
int 0x80
filesize equ $ - $$
(05:37)
このアプローチは賢いなぁとは思ったけど、 "Hello world" のある位置が 0x00200000 とかになっちゃって、 これがうっとうしいんだよなぁ…
さっきの Hello world は EAX(writeシステムコール) と ECX(4Byte目にHello worldが置いてある) が 一致してる、とかそういうのが美しいんだけど
; hello.asm
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
db "Hello world", 0xa
dw 2 ; e_type
dw 3 ; e_machine
;_start: jmp short label1 ; e_version
; dw 0
dd 1 ; e_version
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
dw 0 ; e_shentsize
dd filesize ; e_shnum ; p_filesz
; e_shstrndx
dd filesize ; p_memsz
; db 0xff
dd 5 ; p_flags
dd 0x1000 ; p_align
; _start: xor eax, eax
; inc eax
; int 0x80
;_start: mov byte [EDI+0x10], 0xa ; p_flags
_start: mov ECX, 0x00200000 ; p_align
lea EDX, [EDI+0xd] ; p_align
lea EAX, [EDI+0x4]
lea ECX, [ECX+0x4]
inc EBX
int 0x80
xchg EBX, EAX
xor EBX, EBX
int 0x80
filesize equ $ - $$
コメント無茶苦茶やな。
(06:14)
さっきのは 88B
うーん ! は無いしなんかなぁ。 x86 って文字列コピー命令とかあったと思うけど、 あのへん使うと完全に 76B にはならん気がするなぁ。
あと綺麗に重なりすぎてて fall through できないのも美しくないよなぁ。
(06:19)
; hello.asm
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
db "Hello world", 0xa
dw 2 ; e_type
dw 3 ; e_machine
exit: xor EBX, EBX ; e_version
int 0x80
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
dw 0 ; e_shentsize
dd filesize ; e_shnum ; p_filesz
; e_shstrndx
dd filesize ; p_memsz
_start: inc ECX
shl ECX, 21
lea EDX, [EDI+0xd]
lea EAX, [EDI+0x4]
add ECX, EAX
inc EBX
int 0x80
xchg EBX, EAX
jmp exit
filesize equ $ - $$
とりあえず普通にやると exit 0 するコードはこんなとこかな
(06:42)
(06:48)
末尾の ! にこだわるとすると、 うーんうまく e_type, e_machine が fall through できなくて、
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
_start:
inc EBX
mov ECX, hello
lea EDX, [EDI+0xd]
inc EAX
jmp short label1
dw 2 ; e_type
dw 3 ; e_machine
label1: ; e_version
inc EAX
inc EAX
jmp short label2
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
dw 0 ; e_shentsize
dd filesize ; e_shnum ; p_filesz
; e_shstrndx
dd filesize ; p_memsz
db 0xff
label2:
inc EAX
int 0x80
hello:
db "Hello world!", 0x0a
filesize equ $ - $$
で 73B 。これはセグる。 exit させたきゃもう3B。さらに1Bで正常終了に。 まぁ 76B 越えると意味がない。
末尾の ! にこだわらないなら
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
db "Hello world", 0xa
dw 2 ; e_type
dw 3 ; e_machine
_start: ; e_version
inc ECX
inc EAX
jmp short main
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
dw 0 ; e_shentsize
dd filesize ; e_shnum ; p_filesz
; e_shstrndx
dd filesize ; p_memsz
main:
shl ECX, 21
lea EDX, [EDI+0xd]
lea EBX, [EDI+0x4]
add ECX, EBX
sys:
xchg EBX, EAX
int 0x80
jmp short sys
filesize equ $ - $$
の 72B あたりが、 exit 13 になっちゃうけど、一応。
exit 0 にすると、 73B になった。
BITS 32
org 0x00200000
db 0x7F, "ELF" ; e_ident
db "Hello world", 0xa
dw 2 ; e_type
dw 3 ; e_machine
exit: xor EBX, EBX ; e_version
int 0x80
dd _start ; e_entry
dd phdr - $$ ; e_phoff
phdr: dd 1 ; e_shoff ; p_type
dd 0 ; e_flags ; p_offset
dd $$ ; e_ehsize ; p_vaddr
; e_phentsize
dw 1 ; e_phnum ; p_paddr
dw 0 ; e_shentsize
dd filesize ; e_shnum ; p_filesz
; e_shstrndx
dd filesize ; p_memsz
_start:
lea EDX, [EDI+0xd]
lea EAX, [EDI+0x4]
mov ECX, 0x00200004
inc EBX
int 0x80
xchg EBX, EAX
jmp exit
filesize equ $ - $$
いずれにせよもっと命令を ヘッダに紛れこませればもうちょい削れる気がする…
(08:44)
2634.jp でアクセスを、っていう広告があったわけだけど、 promise.jp でも行けるんなら それでいいんじゃ、みたいなことを思ったのですが。
うーん俺プロミス→promiseは変換できるけど、 プロミス→2634はちょっと変換できないんだよ。 うーん。 どっちが全日本人、というか 金借りる側の人層にはわかりやすいんだろう…
たぶん puromisu.jp を取るといいと思うんだ。 と思ったら取ってあった。 さすが
(16:38)
例えばこの空間のてっぺんに、 私はここ1週間は自殺する予定の無いことを明記します、 最終確認日(○月○日)みたいなのを 手軽に更新できるように置いておけば、 事故か殺人の時に自殺だと誤認される リスクが減るとか。
あまりにどうでもいいリスクだった…!
(16:40)
やるべきことを書き出すといいらしい
とかはどうでもいいとして、
mail のあれはやりたいけど まず Apache 2.2 が欲しいんだよな…
どうでもいいけど昨日の Hello は readelf は SEGV するのに 実行はできるんだよ。
あと Ubuntu はウブンツーじゃないよ。 ユバントゥーだよ。 昨日全く通じなかった俺が言うんだから間違いない
(18:25)
以下のようなことに使われる予定です!
なんでそんな個人的なチャンネルに「さそい」って書いたんだろう
IRCだと消せないわけだ
(19:43)
http://d.hatena.ne.jp/kikx/20061109#1163073252
うへー。 ていうか file コマンドの出力がやけに短いんだけど そういう file コマンドなのやら ELF ヘッダがおかしいのやら… でも ELF ヘッダの e_type と e_machine はいると思うし…
あとそもそも今のやりかただと 限界までコードとヘッダ混ぜても64Bなんだ…
うんつーことは overlap のしかたからして違うんか。
(23:56)
要するにスパムボットはリクエスト投げてみて、 成功してなかったら ちまたによくあるチェックボックスしてね☆系との イタチゴッコ用であるところのアレで 適当に値入れてみてるんかな。
暇潰しに。
よくわかる偏差値
受験のことはあまり覚えてない気味なんだけど、 偏差値という概念は大好きだったので覚えています。
ので負数は邪魔)
たしか 20 かけて100足したのに相当するのが IQ?
まぁ第一義どうでもいい(本当に心底どうでもいい)
(01:07)
偏差値はあんまり10000越えたりとかはしないと思う。 そうじゃないとドラゴンボールみたいになっちゃうよ
i@u ~/wrk/golf> cat heikin.rb
s=t=0
d=$<.map{|v|s+=v.to_i}
s/=@n=d.size
d.map{|v|t+=(v-s)**2}
d.map{|v|p 50+10*(v-s)/Math.sqrt(t/@n)}
i@u ~/wrk/golf> ruby heikin.rb
20
30
40
47.2943310962553
55.4113378074894
66.2340134224682
どうしよう。まだ全然違うよ
(01:09)
(01:14)
すぐ追いつかれるだろうな
3rd shinh 50 Ruby 9,200 (v17) 4th queball 51 Ruby 9,019 (v3) 5th kik 51 Ruby 9,019 (v5) 6th mame 51 Ruby 9,019 (v2)
ヘタすると抜かれる気がする
(03:43)
17th niha 71 Ruby 9,154 (v5) 18th shinh 73 Ruby 8,904 (v11)
これでやるきあっぷ ('-')v
(04:52)
(14:24)
http://yowaken.dip.jp/tdiary/20061108.html#p01
これで落ちるのか勉強になるな。 明日から使っていけるテクニークだ
i@un ~> ruby -e '($...$.).map{|[][$.+=$.]|}'
-e:1: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i386-linux]
zsh: abort ruby -e '($...$.).map{|[][$.+=$.]|}'
これじゃ遠く及ばないなぁ。 3H26B
(17:56)
http://alohakun.blog7.fc2.com/blog-category-7.html
たしか竜が1巻の最初の方で言ってたセリフです。
三段論法から、すぐに
という結論が導けますね。 すばらしいことです
(03:16)
http://yaplog.jp/mjc/archive/46
「…無職です。親の遺産でくらしています」
らしい。
どうでもいいけどあの「働いたら負けだと思っている」 とか言ってた人も、とてもこう強気というか、 自信まんまんだったのがすばらしいのであって、 自己嫌悪などを伴うニートは あまりよろしくないように思います。 なかなか凡人にはマネできませんが。
ニートでありながらヤクザに説教を垂れるような、 そんな
(03:20)
(03:49)
なんか献本もう来てるんかな。 俺来てませんがなにか。
どうでもいいけど こう有名ブロガーのみなさまに配って 宣伝させる計画というのがありましたが、 有名ブロガーのみなさまにはどのくらいで オマエにやるぞって連絡がいってるのだろうか。 予約とかしちゃうとアレなわけで、 そのへん気になる。
と書いておけば、みたいな
(04:25)
(04:35)
i@u3 ~> sudo fdisk -l /dev/hda Disk /dev/hda: 20.0 GB, 20003880960 bytes 255 heads, 63 sectors/track, 2432 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 637 5116671 c W95 FAT32 (LBA) /dev/hda2 2047 2432 3100545 eb BeOS fs /dev/hda3 638 2046 11317792+ f W95 Ext'd (LBA) /dev/hda5 638 880 1951866 83 Linux /dev/hda6 881 892 96358+ 82 Linux swap / Solaris /dev/hda7 893 1622 5863693+ 83 Linux
WinMe と Be 消せば Xen 余裕で入るよね…
(04:51)
http://sourceforge.net/mailarchive/forum.php?thread_id=8936174&forum_id=298
(05:08)
面白そうだから欲しいなぁ…と思ったけど 破産が見えてる以上セーブ気味なんだよなぁという。
まぁ買っちゃってもいい気はする。うんきっといい。
というメソッドはどうだろう
(05:37)
(07:03)
1st kinaba 71 Ruby 10,000 (v8) 2nd flagitious 71 Ruby 10,000 (v15) 3rd terjek 71 Perl 10,000 (v5) 4th shinh 71 Ruby 10,000 (v14) 5th kik 72 Ruby 9,861 (v5) 6th niha 72 Ruby 9,861 (v24)
(08:08)
s 78 n はるか下 s 78 n 75 s 78 n 74 s 74 n 74 s 73 n 74 s 73 n 72 s 72 n 72 s 71 n 72 ←今ここ
スタ〜トはこのへん
http://shinh.skr.jp/m/?date=20061024#p01
(08:16)
1st kik 70 Ruby 10,000 (v8) 2nd kinaba 71 Ruby 9,859 (v8) 3rd flagitious 71 Ruby 9,859 (v15) 4th terjek 71 Perl 9,859 (v5) 5th shinh 71 Ruby 9,859 (v14)
なんですって
(12:43)
(12:44)
http://shinh.skr.jp/m/?date=20061107#p20
というかなんで k2 をこんなに遅く配置したんだろう。
1st kik 70 Ruby 10,000 (v8) 2nd kinaba 70 Perl 10,000 (v9)
まぁさすがは、 「ゴルフで高得点をおさめるにはどうすればいいでしょう!?」 という悩みに、 「名前を k で始まるように改名するといいよ」 と返されるだけのことはあるというか
(16:09)
ぱらぱら見たけど、 特に深い感慨も無いのであった。 索引長いなというか。 みんな好き勝手線引いてたからな。
一つ感慨深かったのは、 バイナリアンという単語が見えたことかな。 他でも書いたような気もするけど、 あれってたぶん僕発の造語なんだよね。
b2con の話で、他に候補いますかという質問に対して、
うーん、あまりお友達いないので、特にバイナリアンと なるとちょっと思いつかないですね…
となんとなく使った (2005/11/06 20:14) のが、 たぶん最初なんじゃないだろうかと。 その後なんか高林さんが 「バイナリアンと呼ぶらしいです」などと ML に流した後みんな普通に使ってたというような。 お、なんかちょうどだいたい1年前だね。
とまぁ、将来バイナリアンという単語が普及しまくって 子供の夢にクラスの3割くらいが ばいなリあんって書くくらいになったら 孫に自慢するため書いておいた。
個人的には語感のよくわからなさが わりと好きだったりします。 ところで Rubyist というのは 仮に Ruby マンセーだったとしても ちっとも名乗る気が起きないくらい かっこ悪い呼称な気がしてるんだけど、 まぁバイナリアンとかも ハタから見るとキモいかもしれない… というようなことを考えずに、 Rubyist の方が Rubyist を自称する、 そういう文化をなんとなく 気にいってないのかもしれない。
なんかしらの呼称を自称するのが そもそもあまり好きでないとか。 そうそう VIPPER ってのもきらい。
まぁなんにせよ尊称的な意味あいが強い感じだし、 お〜れ〜はバイナリア〜ンガ〜キだいしょ〜、 とか言う機会は無いだろう。
なんかだらだら書くということは感慨深いのだろー
(16:40)
ツッコミ欄よりここに書く敷居が低いのは、 Emacs でメール投げるだけっていうのが コメントのしかたを探すよりはるかに 僕にとってラクだからなんだけど、 まぁ作ってみよう
(16:56)
i@um ~/test/java> cat initializer.java
public class initializer {
public static initializer i = new initializer();
public initializer() {
System.out.println("Hello world!");
}
}
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/javac initializer.java
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/java initializer
Hello world!
Exception in thread "main" java.lang.NoSuchMethodError: main
おーホントだ。んで…
i@um ~/test/java> cat initializer.java
public class initializer {
public static initializer i = new initializer();
public initializer() {
System.out.println("Hello world!");
System.exit(0);
}
}
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/javac initializer.java
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/java initializer
Hello world!
おー
(21:48)
(22:02)
i@um ~/test/java> cat initializer.java
class base {
public static base i = new base();
public base() {
System.out.println("Hello world @base!");
// System.exit(0);
}
}
public class initializer extends base {
public static initializer i = new initializer();
public initializer() {
System.out.println("Hello world!");
// System.exit(0);
}
}
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/javac initializer.java
i@um ~/test/java> /usr/java/j2sdk1.4.1_07/bin/java initializer
Hello world @base!
Hello world @base!
Hello world!
Exception in thread "main" java.lang.NoSuchMethodError: main
(22:05)
http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/shinichiro_h/20061107%231162835826
のノリがなかなか良ろしくてうれしかったです
(22:23)
1st shinh 82 Ruby 10,000 (v32) 2nd kinaba 83 Perl 9,879 (v16) 3rd kik 83 Ruby 9,879 (v23) 4th mame 83 Ruby 9,879 (v14)
(23:17)
_ あろは [全然有名じゃないしバイナリアンでもない僕のところにも献本話がきたぐらいなので、けっこう広範囲に話が行ってそうな気がし..]
_ shinh [わーいあろはさんがつれた。 「と書いておけば、みたいな」 は中が省略されていて省略された内容は、「もしあろはさん..]
_ kosaki [つまり、まとめると。 オイラに献本の話が来ているのは - shinh さんにkosakiは読者とは認めら..]
_ shinh [なんですってー。直接面識が無いのにこんなわけのわからない電波メモを見てるようなヒ…知識欲の旺盛な方が他にいらっしゃる..]
_ Gus [うほ、実験乙でございます。>java w/o main 実はやるの忘れてました。]
http://d.hatena.ne.jp/MDA/20061105/1162652671
途中の法律文体2Dシューの定義が全く意味が 腑に落ちなくてわらった。
よくわからんけど分類は1-Bにかなりよった2-Bかなぁ。 商業商品の成し遂げたことってのはやっぱすごいわけでのう
(00:58)
ずっとなんていうか、 Io とか C 式スレとか見て ぼんやり考えてたことに自分的ななんかがあったかもしれないような。
んーと S 式ってあって (func arg1 arg2 arg3) って形式は 色々便利っていうのはもちろんで、 これがまんま構文木な以上これ以上にシンプルな 形式はそうそう無いんかねということで まぁそれはいいとして。 でも僕は Io の形式っていうか、 構文木にすると (obj func (arg1 arg2 arg3)) てなるんじゃないかな、 こんな形式になんとなく魅力を感じてて、 数時間だけ Ruby で書いてみたりしたわけだけど、 まぁこれってややこしくしてるだけだよね これもS式に含まれるよねと言われればその通りで、 まぁそれでもわざわざ機能を限定する理由は、 えーなんだっけとか考えてたんだけど。
でなんだハッシュだハッシュ。 スコープとかオブジェクトしこーだとかは とにかくあれはハッシュなのでハッシュったらハッシュで。 Lua とか BeanShell がなんとかとか。 で、まぁ、リストで記述された、 ハッシュをいじることに特化した言語、 というふうに考えると、 Io 形式のメリットが見えてくるのかなぁとか 突然思ったのだけど。
まぁ頭悪いから作ってみないとわからん。
あと Proc#[] が今不意になんか。 まぁやってみる気が湧いてきた。
(01:14)
バカだから書きたいことを全部書き忘れている。
まぁ書かなくてもいいことだけど。
http://rainer.blog7.fc2.com/blog-entry-40.html
Cg を一瞬見たくらいしか 高レベルなシェーダを見た経験が無い 僕の感覚だけど、 3D 部をスクリプトで出すっていうのは、 かなり面白いんじゃないかなぁとぼんやり。 アセンブラのシェーダがあって それを高レベル化したけど その高レベル化って本当にほんの少しの高レベル化であって なんかかなりプリミティブだよなぁとか思って、 もうちょい抽象化進めても最適化できるコンパイラとかも 今のコンパイラの SIMD への頑張りぷりとか見て ちと厳しいのかなぁとか素人考えで思って、 んでほっといてハードウェアの方が 今のペースで進化しちゃえば とりあえず簡単に書けて結果が間違ってなきゃ 遅くてもいいおー的な スクリプト言語のノリはかなり需要が出そうな…みたいな。
うおー完全に素人考えの妄想だ。 あと元コメントとあんまり関係ない
(01:45)
SQL についてと逆のこと言ってないかと思った。
SQL もあれはアセンブラなんだ…というのは 何度かあちこちで言ってる気がするけど、 アセンブラなんだからコンパイラで作るべきであって スクリプト言語で O/R マッパーとかそれ何、 遅くね?みたいな。
どっちも最近湧いてきたアセンブラで、 それぞれの生まれてきた文化の違いから 違った方向から進化してるとか
性質もだーいぶちがうねー ^-^-^-^-^
(01:47)
manpages-dev とかそんなんにあったみたいです。 ばじゃい。 協賛: tekezo 師匠。
あとなんか auto-apt がすごいいいものだと理解。 FC の時は DVD マウントして rpm -qilp *.rpm > longinfo とかしてから longinfo を大切に保管してそれを見てパッケージ選んでたんだけど、 auto-apt は既に /var/cache/auto-apt とかにそれを置いてくれてる。
(14:34)
mircbot の色が見えるようになってたのはまぁいいんだけど、 その色が黒とかで全く見えなかったのでこのへん見て修正。
http://d.hatena.ne.jp/hirose31/20060824/1156400991
こんな約束がちゃんとあるんだなぁ。 RFCにはなってないんだろうな。
http://www.mirc.co.uk/help/color.txt
(23:45)
| 前 | 2025年 12月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ niha [前の書き方が限界ぽかったので大きく書き方を替えました。まあ頑張って追い抜きます。踏台ですから。 ボクのことは気にしな..]