トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2006-11-10

_ なぜ前者がダメなのか

理解するのに時間かかった。

http://gusmachine.blog49.fc2.com/blog-category-2.html

(00:49)

_ まあとりあえずは

issigned を…

(00:44)

_ 何やっても int になっちゃうよなぁ

http://ukai.org/d/index.cgi?2004-06-21

んーむ。

GCC とか C++ なら簡単なんだけど。

(01:11)

_ 本物の Perl golfer が

1st  tybalt89   56   Perl     10,000 (v2)
2nd  kinaba     67   Perl     8,358 (v11)

来たみたいですね…

(02:20)

_ 63B を考える会

なんせまずオーバーラップのしかたからしてたぶん違う。

一番短いアレは

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)

_ でまあ

これより少なくなると、 もうなんか無いんだよなぁ… e_shoff と p_type 重ねるのがどう見ても限界というか

(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が打ち止めなわけで。

  • e_phentsize < 32 がありえる
  • p_flags か e_phoff をなんかうまくごまかせる
  • e_type と p_vaddr がオーバーラップするなにか(できる感じしないけど)

(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 じゃないとダメだったはず…

  • 1C が矛盾
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 ** ** ** ** ** ** **
  • 1D が矛盾
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 は同じくダメ。

  • 1C-20 が小さすぎ
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 ** ** ** ** ** ** **
  • 1C 矛盾
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 もだめな気が。

  • 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 もそう。

  • 10 付近が矛盾してる
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 ** ** ** ** ** ** **

これしばらく続く。

  • 2C 付近が矛盾
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 ** ** ** ** ** ** **

これもちょいと続くよ

  • 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 ** ** ** ** ** ** **
  • 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 ** ** ** ** ** ** **
  • 2A あたりが矛盾
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 ** ** ** ** ** ** **

しばらく続いて、

  • 今度は 1C が矛盾
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)

_ とりあえず

ヘッダの値域の確認…とかする前に。

(16:32)

_ LFSって!

http://d.hatena.ne.jp/kikx/20061110#1163148475

どこが普通やねんと…!

にしてもどこで止まってるんだろう。 kernel オプションとかだとすると p_flags 以外で止まるか止まらんか差があるってのもアレだなぁ。 strace してやるとだいたいどこで止まったかは 予想がつくものですが。

うちだと

ヘッダが全部ファイルに無い
IO error
p_flagsが不適切(ちなみに4はいらなかったような3でいいというか)
SEGV
指定したファイルサイズがでかすぎたり小さかったり
killed とか SEGV とか
その他のたいてい
executable format がどうこう

とかだった気がします。 いや全然覚えてないぞ…!

なんにせよそのサイズで ヘッダに命令埋めつくしたのはすごいです…

(17:58)

_ うちでもー

76B はどこでも動くんだけど。

  • Ubuntu
i@u ~> uname -a
Linux u 2.6.17-10-generic #2 SMP Fri Oct 13 18:45:35 UTC 2006 i686 GNU/Linux

これが作業環境。

  • Debian
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 はオッケ。

  • Fedora Core 5
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 という罠がひどい。

  • Debian woodie

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

どっちも動く。俺の誕生日にカーネルビルドするとはやるな。

  • SuSE 9.0

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 のマシンらしいね

  • これなんだろ rpm あるから rpm 系

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
  • CentOS 4.2
-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
  • Debian 3.1
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
  • Fedora Core 2
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
  • Linux 2.6 (Fedora Core 3 on AMD64 Opteron)
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環境ってなにがおきてるの。

ちなみにすげーてきとうにぶっこんだファイル

http://shinh.skr.jp/t/t.tgz

(18:20)

_ とりあえず

Hello, world!\n が出る 64B を目指そうじゃないかと思った

それができないと負け犬

まぁ俺は負け犬なのでどうでもいいが

(18:38)

_ まあ

第一回くやしさまぎらわせ大会

  • Prime Factors

プギャー

1st  shinh      82   Ruby     10,000 (v32)
2nd  kinaba     83   Perl     9,879 (v16)
3rd  kik        83   Ruby     9,879 (v23)
  • Vigenere Cipher

プギャー

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)

_ XFS て

すげーなあ

(18:55)

_ でも

ということは、一定ポータブルって条件を入れたら、 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)

_ どんな最適化が

http://www.tietew.jp/cppll/archive/12796

入るんだろう

(23:33)

_ 87B

80切るようなことはあるだろうか。 無いんじゃないかなあ。

そうだとするとしばらく放置しても2位キープできる というかそんな思考になってしまった僕が、悲しい。

(23:50)

本日のツッコミ(全1件) [ツッコミを入れる]

_ Jeucrjbg [この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5..]


2006-11-09

_ ねむい

やるべきことキューがむちゃくちゃ

(04:05)

_ 今日は

ジョジョーが ELF golf とかの話を。

なんかみんな似たような嗜好が

(04:39)

_ hello76

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)

_ 78B

さっきのは 88B

うーん ! は無いしなんかなぁ。 x86 って文字列コピー命令とかあったと思うけど、 あのへん使うと完全に 76B にはならん気がするなぁ。

あと綺麗に重なりすぎてて fall through できないのも美しくないよなぁ。

(06:19)

_ 75B

あとはルール変えたらまだ縮むけどなぁ。

(06:31)

_ 74B

; 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)

_ fall through もむずかしそう

(06:48)

_ 73B

exit 0

(07:11)

_ 73B と 72B

末尾の ! にこだわるとすると、 うーんうまく 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

2634.jp でアクセスを、っていう広告があったわけだけど、 promise.jp でも行けるんなら それでいいんじゃ、みたいなことを思ったのですが。

うーん俺プロミス→promiseは変換できるけど、 プロミス→2634はちょっと変換できないんだよ。 うーん。 どっちが全日本人、というか 金借りる側の人層にはわかりやすいんだろう…

たぶん puromisu.jp を取るといいと思うんだ。 と思ったら取ってあった。 さすが

(16:38)

_ 遺言については

例えばこの空間のてっぺんに、 私はここ1週間は自殺する予定の無いことを明記します、 最終確認日(○月○日)みたいなのを 手軽に更新できるように置いておけば、 事故か殺人の時に自殺だと誤認される リスクが減るとか。

あまりにどうでもいいリスクだった…!

(16:40)

_ life hack

やるべきことを書き出すといいらしい

  • oblongular ...

とかはどうでもいいとして、

  • ろんぶん
  • oprofile @nii
  • mail のあれ
  • IRC のあれ
  • シューティングのあれ
  • 言語のあれ
  • 麻雀のあれ
  • 最小Hello

mail のあれはやりたいけど まず Apache 2.2 が欲しいんだよな…

どうでもいいけど昨日の Hello は readelf は SEGV するのに 実行はできるんだよ。

あと Ubuntu はウブンツーじゃないよ。 ユバントゥーだよ。 昨日全く通じなかった俺が言うんだから間違いない

(18:25)

_ そういえば

やっと生協食堂の利用法がわかった。 寮跡地に行くと使える。

(18:27)

_ test sbj

test body

(19:16)

_ by shinh

_ (19:15)

_ ほげほげー

by shinh

(19:15)

_ というわけで

IRCから書けるようにしてみたのであった

(19:29)

_ というわけで

IRCから書けるようにしてみたのであった。二重投稿

(19:30)

_ というわけで

IRCから書けるようにしてみたのであった。二重投稿。三重?

(19:30)

_ というわけで

IRCから書けるようにしてみたのであった。二重投稿。三重?。四重?

(19:31)

_ ほげほげー

てすてすと

(19:31)

_ うまく

うごいてる感じだにゃ。うーんんぼえーぼえー

(19:32)

_ 段落テスト

ほげほげ

はげはげ

(19:37)

_ 記法テスト

  • あひい
  • おがあ

(19:37)

_ #mazop のさそい

  1. mazop は irc.friend.td.nu 上のステキなチャンネルです!

以下のようなことに使われる予定です!

  • 僕のメモ

なんでそんな個人的なチャンネルに「さそい」って書いたんだろう

IRCだと消せないわけだ

(19:43)

_ 記法

あー。 # ではじめると 1. になってしまうんかー

(19:43)

_ 俺活動拠点

shinh.org に IRC サバ立ててそんな感じにするかなぁ… たとえば #mail にはメールの通知がくるとか

(19:46)

_ てす

(19:47)

_ おや師匠がいらっしゃる

こんな感じで書ける と

(23:34)

_ ぎゃあ

http://d.hatena.ne.jp/kikx/20061109#1163073252

うへー。 ていうか file コマンドの出力がやけに短いんだけど そういう file コマンドなのやら ELF ヘッダがおかしいのやら… でも ELF ヘッダの e_type と e_machine はいると思うし…

あとそもそも今のやりかただと 限界までコードとヘッダ混ぜても64Bなんだ…

うんつーことは overlap のしかたからして違うんか。

(23:56)


2006-11-08

_ woさんとこ見てて

要するにスパムボットはリクエスト投げてみて、 成功してなかったら ちまたによくあるチェックボックスしてね☆系との イタチゴッコ用であるところのアレで 適当に値入れてみてるんかな。

暇潰しに。

よくわかる偏差値

受験のことはあまり覚えてない気味なんだけど、 偏差値という概念は大好きだったので覚えています。

  • 平均値求める
  • 各値について平均値と各値を引き算してそれを2乗 (ゆらぎ度合いが見たい

ので負数は邪魔)

  • でその値を足していって全体数で割って平均を取る (これが分散)
  • 分散の平方根を取ると標準偏差 (2乗しちゃってるから調整)
  • 各値について、平均値からの距離を調べて、それを標準偏差で割る (これでなんとなく分散を考慮に入れた距離にしたつもり) 。で適当に10かけて50を足す。(なんとなく50中心に)
  • できあがり

たしか 20 かけて100足したのに相当するのが IQ?

まぁ第一義どうでもいい(本当に心底どうでもいい)

(01:07)

_ つまり

i@u ~/wrk/golf> ruby heikin.rb
20
30
40
-12610
-8610
27390

こうなるわけですね

(01:08)

_ うそでした

偏差値はあんまり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)

_ 普通に MinGW は

みんぐぅ が強いみたい

みんうなんていないお

あとなんか登録しようと思ってるのがあったんだけどな。 まぁ忘れた

(01:45)

_ とりあえず

結構めんどいかなぁ。 スパム集めるとこからかね

(01:54)

_ ブロガーを馬鹿にしすぎ

OSSFJ みたいなノリでブロガーを ほげほげする賞を。

日本オメガブロガー賞 2007

  • さちこさん(鈴木くんとの交換日記)

特に思いつかないのであった

(02:38)

_ これは

すぐ追いつかれるだろうな

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)

_ 2Byte 文字

混じってるスパムがきた

(14:52)

_ emacsclient -e

が動かない。 xemacs からってことかな。

と思ったら gnuserv というのが良いらしいですぞ。

まぁ帰ったらやるる

(17:39)

_ 適当に記号ゴルフ

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)

_ nothing special

とかよく見るような

(18:02)

_ スパムコメント

なんか MD5 みたいなんがついてたりとか

(23:38)

_ はてなのスパム対策

多人数からトラックバック拒否されているドメインからのトラ
ックバックを
(*) 拒否する
( ) 拒否しない 

おおこれかしこいな

(23:40)


2006-11-07

_ 親の遺産で暮らしています

http://alohakun.blog7.fc2.com/blog-category-7.html

たしか竜が1巻の最初の方で言ってたセリフです。

  • 竜は素晴らしい
  • 竜はニート

三段論法から、すぐに

  • ニートはすばらしい

という結論が導けますね。 すばらしいことです

(03:16)

_ 本物の方がカッコ良かった…!

http://yaplog.jp/mjc/archive/46

「…無職です。親の遺産でくらしています」

らしい。

どうでもいいけどあの「働いたら負けだと思っている」 とか言ってた人も、とてもこう強気というか、 自信まんまんだったのがすばらしいのであって、 自己嫌悪などを伴うニートは あまりよろしくないように思います。 なかなか凡人にはマネできませんが。

ニートでありながらヤクザに説教を垂れるような、 そんな

(03:20)

_ quadrature

(03:49)

_ ニートでありながら

ここにもニート蔑視が! ニートという素晴らしい立場の方が せっせと働いてるヤクザに対して 偉そうなのは当然じゃないかっ…

(04:20)

_ というか

なんか献本もう来てるんかな。 俺来てませんがなにか。

どうでもいいけど こう有名ブロガーのみなさまに配って 宣伝させる計画というのがありましたが、 有名ブロガーのみなさまにはどのくらいで オマエにやるぞって連絡がいってるのだろうか。 予約とかしちゃうとアレなわけで、 そのへん気になる。

と書いておけば、みたいな

(04:25)

_ はてなパーカー欲しい!

(04:35)

_ 突然

Xen を使いたくなった。 OSC のセミナー受けときゃ良かったな。 まぁ chroot でなんとかなるだろー

(04:45)

_ u3

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)

_

面白そうだから欲しいなぁ…と思ったけど 破産が見えてる以上セーブ気味なんだよなぁという。

まぁ買っちゃってもいい気はする。うんきっといい。

  • この本読みたいです><ってアフィつきでブログに書く。
  • 30冊売れる
  • 買う

というメソッドはどうだろう

(05:37)

_ true=~true は false です

(07:03)

_ finally!!!

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)

_ flaたん

些細なことから海腹川背好きと発覚

(10:17)

_ ttp://youtube.com/watch?v=5_4Fwn-8moY

_ (10:19)

_ tp://youtube.com/watch?v=uxG1NRozJMY

_ (10:49)

_ ぎょへー

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)

_ 感動的(でもない)ストーリ〜

  • おい俺の Riece が shinh のある行表示してねーよ(どんなミスだよ)
  • ログ見たら俺フラたん無視しまくり!
  • are you around? いねえ
  • しばらくして来た。ごめん俺アホだ平謝り。
  • 記号ゴルフについて。
  • つーかなんでアナタ日本のサイト見てんねん、よく見るな。
  • まーなんとなく翻訳でわかるっぺ
  • わからんとこあったら聞いてください
  • 例えばこれ何
  • おもろい訳するなーそれはほげほげ
  • 翻訳エンジン面白いよね
  • 海腹川背について調べてた時に "superconductive alligator" っていう誤翻訳を見た時一番面白かったよ
  • つーかアナタ海腹川背知ってますか!!!俺大好きだよ!
  • 俺ビデオ作ってるんだー
  • ほほう…でもとりあえずそれは一風変わったハンドルだ
  • ビデオすげー、俺の記録とかより全部上だべー
  • 実機でやったら厳しいべ
  • よく指痛めてた、俺キチガイだから
  • F0 とか F12 とか、 0.0x 秒遅れたらダメだった
  • すげー
  • 海腹川背日本じゃ有名なん?
  • んなわけねー、ゲーム好きーが熱狂的にやるような感じ
  • んなら俺が君に会ったのラッキーね
  • 俺の方がラッキーだろ
  • なんか改善できそうな点見つけたら教えてな
  • 無理無理

(12:44)

_ これからの予想

  • k 70 ← 今ここ
  • f 70
  • n 70
  • k 70
  • s 68 !!!

(13:07)

_ あなた恥ずかしくないんですか

rand を使うなんて

そうとしか思えない

(13:20)

_ 未来予想外れる

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)

_ sounds good と looks good

日本語には無いニュアンスの違いかしら。

(16:14)

_ 献本届いた

ぱらぱら見たけど、 特に深い感慨も無いのであった。 索引長いなというか。 みんな好き勝手線引いてたからな。

一つ感慨深かったのは、 バイナリアンという単語が見えたことかな。 他でも書いたような気もするけど、 あれってたぶん僕発の造語なんだよね。

b2con の話で、他に候補いますかという質問に対して、

うーん、あまりお友達いないので、特にバイナリアンと
なるとちょっと思いつかないですね…

となんとなく使った (2005/11/06 20:14) のが、 たぶん最初なんじゃないだろうかと。 その後なんか高林さんが 「バイナリアンと呼ぶらしいです」などと ML に流した後みんな普通に使ってたというような。 お、なんかちょうどだいたい1年前だね。

とまぁ、将来バイナリアンという単語が普及しまくって 子供の夢にクラスの3割くらいが ばいなリあんって書くくらいになったら 孫に自慢するため書いておいた。

個人的には語感のよくわからなさが わりと好きだったりします。 ところで Rubyist というのは 仮に Ruby マンセーだったとしても ちっとも名乗る気が起きないくらい かっこ悪い呼称な気がしてるんだけど、 まぁバイナリアンとかも ハタから見るとキモいかもしれない… というようなことを考えずに、 Rubyist の方が Rubyist を自称する、 そういう文化をなんとなく 気にいってないのかもしれない。

なんかしらの呼称を自称するのが そもそもあまり好きでないとか。 そうそう VIPPER ってのもきらい。

まぁなんにせよ尊称的な意味あいが強い感じだし、 お〜れ〜はバイナリア〜ンガ〜キだいしょ〜、 とか言う機会は無いだろう。

なんかだらだら書くということは感慨深いのだろー

(16:40)

_ kiちがいさんが

本領をいかんなく発揮しておられる

(16:51)

_ ツッコミ欄

ツッコミ欄よりここに書く敷居が低いのは、 Emacs でメール投げるだけっていうのが コメントのしかたを探すよりはるかに 僕にとってラクだからなんだけど、 まぁ作ってみよう

(16:56)

_ 2634

遺言とか

(17:39)

_ とりあえず

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)

_ そもそも main なんていらないんじゃないかとか

(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)

本日のツッコミ(全5件) [ツッコミを入れる]

_ あろは [全然有名じゃないしバイナリアンでもない僕のところにも献本話がきたぐらいなので、けっこう広範囲に話が行ってそうな気がし..]

_ shinh [わーいあろはさんがつれた。 「と書いておけば、みたいな」 は中が省略されていて省略された内容は、「もしあろはさん..]

_ kosaki [つまり、まとめると。 オイラに献本の話が来ているのは - shinh さんにkosakiは読者とは認めら..]

_ shinh [なんですってー。直接面識が無いのにこんなわけのわからない電波メモを見てるようなヒ…知識欲の旺盛な方が他にいらっしゃる..]

_ Gus [うほ、実験乙でございます。>java w/o main 実はやるの忘れてました。]


2006-11-06

_ paco 見て

stow も時代遅れだなぁと思ったけどたぶん paco も違う。

つか自分で作りてーと思った。

(00:51)

_ シューティング生き残り

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)

_ マンカラ自作キット

欲しいかも安いし

http://bg-michi.jp/ITMP/710011.html

awari というのがゲーム&&オブジェクト思考本に載ってて知った

(01:55)

_ man は

manpages-dev とかそんなんにあったみたいです。 ばじゃい。 協賛: tekezo 師匠。

あとなんか auto-apt がすごいいいものだと理解。 FC の時は DVD マウントして rpm -qilp *.rpm > longinfo とかしてから longinfo を大切に保管してそれを見てパッケージ選んでたんだけど、 auto-apt は既に /var/cache/auto-apt とかにそれを置いてくれてる。

(14:34)

_ わーい

http://tinyurl.com/yhw9ot

わけのわからん migemo 系のバグなおった。 /etc/emacs/site-start.d/50skk.el を適当に修正。

(14:49)

_ riece-google.el

ってのがあるなぁ。 なんかささださんの名前が Author に入ってる

(23:34)

_ riece の色

mircbot の色が見えるようになってたのはまぁいいんだけど、 その色が黒とかで全く見えなかったのでこのへん見て修正。

http://d.hatena.ne.jp/hirose31/20060824/1156400991

こんな約束がちゃんとあるんだなぁ。 RFCにはなってないんだろうな。

http://www.mirc.co.uk/help/color.txt

(23:45)


2006-11-05

_ mkfontdir

してなかった。 ひどかとね。

んでなんか、前のフォントの方が 14pt の場合は良かったんじゃないかなぁとか 思っちゃうのですが。

もうなんか節穴すぎてなんもわからん。 なんもわからんつーのは AA かかってるか否かもわからん。 Emacs のフォントも今変わったような一緒なような。 うーむむ…

(01:06)

_ まさしく

w3m-img でゴミが飛んでるように見えるのであったー

(01:14)

_ フォント

なんかたぶん設定できた。 いやできてないけど飽きた。 とりあえず端末サイズが 12 でも 14 でも 日本語出ているのはおおいなる進化だ。 チンポから石が出る並の進化だと思う。

http://tinyurl.com/yn5rz6

一応元ネタをはっておけば kids goo も許してくれるだろう。

たぶん絶対許してくれない。

んでなんか14のフォントがどう見ても Emacs と違うんだな。 なんか節穴で見ても違う。 ものごっつ違和感あるけどまぁいいか… なんせ Emacs でなんていうフォントが使われているのか わかっていないのだから…!

綺麗なフォントとか選んでる暇があったら 自分の目を慣らした方がはるかに速い。

なにしたっけ。

mlterm は --enable-optimize-redrawing はしない。 xcore を使う。 たぶん14はshinonomeで12はmplusになってる…と思う。知らん。

というわけで残った問題点

  • YouTube 見れない (むしろいいこと)
  • Firefox が skkinput で刺さる (びっくりするけど実は実害無い)
  • Emacs の skk & incremental search がおかしい

ぶっちゃけどれもフェータルだと思う。

(01:31)

_ suck

mlterm_suck.png

(01:38)

_ 青い鳥

http://www.pqrs.org/~tekezo/nikki/2005/05/18.html#y2005m05d18c1p4

結局師匠が常に正しいのであったー

(01:40)

_ あらすじ

  • なんか w3m で H* が太字になってない
  • それはさすがに慣れとかいう次元なのか
  • だって普通に情報落ちてるし
  • ていうか shinonome あんまり好きじゃないです…
  • ていうか設定ファイル見てて気付いたけど _BOLD でも同じフォント指定してね?
  • 突然 K14 というフォントが好きなことを思い出す
  • 全て解決

よし 7x14 & K14 の SDL 用のフォントを作ろうじゃないか…

(01:45)

_ K12-1_6x12.f1b

http://shinh.skr.jp/sdlkanji/

4年以上前に通った道ですからー!

(01:46)

_

12pt のフォントも k12 というのになった。

DEC_SPECIAL = 10,mplus_j10r-iso;12,mplus_j12r-iso;
ISO8859_1=14,7x14;10,mplus_j10r-iso;11,mplus_f10r;12,6x12;13,6x13;10,6x10;6,4x6
JISX0201_ROMAN=14,k14;10,mplus_j10r-jisx;12,k12;
JISX0201_KATA=14,k14;10,mplus_j10r-jisx;12,k12;
JISX0208_1983=14,k14;10,-mplus-gothic-medium-r-normal--10-100-75-75-c-100-jisx0208.1983-0;12,k12;
JISX0208_1990=14,k14;10,mplus_j10r;12,k12;

まんぞく

(01:49)

_ あと IRC ぶちぶち

切れてたのは、なんかル〜タ再起動 という超画期的なアイデアでなおった。 自分の才能が怖いというかみなさんごめんなさい。

(01:54)

_ まだあるなー

pty 6 本もいらない。 inittab どこいったねん。

起動時に apache 動いてない。 起動時に cmigemo-server 動いてない。

cmigemo は rc.local に書いた。

inittab はんーどうも /etc/event.d か。

へー

i@u /etc/event.d> sudo mv tty5 /tmp
i@u /etc/event.d> sudo mv tty6 /tmp

雑さには定評がある

(02:24)

_ 気が変わったので

コメントアウトだけで対処。

Apache はそもそも 2.2 が欲しいという問題が。

…なんで音鳴ってないの。 なめてるの。

(02:40)

_ OK

event.d を書き損じると音が鳴らなくなることで通知されるようだ。 tty5 と tty6 は中身いじって start => stop に

(02:49)

_ 妖精待ち

http://yowaken.dip.jp/tdiary/20061105.html#p01

を見て俺も cipher ちょっと見るか…と思って見た瞬間に 1B 縮んだ。 なんかあんまり深く考えてもうまくいかん時はいかないような。

(03:24)

_ Firefox 日本語刺さる問題

SCIM も動かすことで回避。 SCIM は mlterm で今うまいこと動かんけど、 動くんなら skkinput やめてもいいかなぁ。

(03:28)

_ SDL_Pad preloaded

SDL_pad で SDL_joystick を乗っとろうと考えた。 なんかを preload させて、 SDL_joystick の関数を使う SDL_pad を使って SDL_joystick の関数を乗っとる、 の、は、できない。 なぜなら SDL_pad は乗っとった関数を呼んじゃうから。

えーとどうすっぺ。

(06:21)

_ まあ思いついた

(06:24)

_ 記号ゴルフ

って英語でなんかね、って聞いたら <-<>|_|= だと。 最初が無理すぎ

(07:53)

_ PE について

単なる孫引き via http://d.hatena.ne.jp/w_o/20061012#p1

Portable Executable, Windows

http://wiki.osdev.info/?PE

(16:58)

_ スパムー

woさんとスパムのたたかいが。 ここの経験上、ひらがな混じってなきゃ弾く、 は相当に強いフィルタになる。 で、はてなでこれやりたいよなぁという話。 いや簡単なんだけどね、 どうせなら他の人が利用できる形に できたらいいかなぁと思うものの、 それを考えるとちっとも手が動かない

(17:21)

_ tty のアクセス時刻

から w コマンドが作れるとかびっくり〜

http://0xcc.net/blog/archives/000141.html

なんか Unix は本当にアーキテクチャ宇宙飛行士だのう。

RubyFS とかでやるとどうかね。 オブジェクトの更新時刻を覚えてるとか嬉しいのかって感じだが。

ファイルの更新時刻ってのは要するに 検索と make のためにある情報だろうたぶん。

まず検索だけど、障害が起きた→ 2日前くらいらしい→2日前以降に更新されたオブジェクト一覧を find で作成→えーとそれが何が嬉しいの? って感じでとっても役に立たなくていいかもしれない。

make の方は普通に Observer パターンみたいなのが 面白いかもしれないね。 update 通知いらないというのはなかなか。

ていうか /dev/input/event 監視デーモンは 前から作ろうと思って作ってないなぁ。

とりあえず /dev/input/event と言えば われらが Nunocky サマ。

http://www2s.biglobe.ne.jp/~nunokawa/wiki.cgi?page=%2Fdev%2Finput%2Fevent%A4%C7%CD%B7%A4%D6

(18:01)

_ ラギッド・ガール

なんか最近よく見る文字列です

http://www.amazon.co.jp/gp/product/4152087676

(18:25)

_ ぐにゃりてぃっくす

ぐぐるあなりてぃっくすからは 「僕たちの好きなグーグル」的な香りがまったくないよな。 なんか微妙もいいところみたいな

(19:54)

_ 精神衛生上あまり

よくないサイトを 精神衛生がイマイチな時だけ 外してくれるようなアンテナとか

(20:07)

_ ほへー

http://d.hatena.ne.jp/ajiyoshi/20060502/p2

すごいところで議論があるんだなぁ。

EXEファイルより圧倒的にインストールの敷居が軽いから… って話かー。

ソース読めってよりは能力的な可能性と 配布元の信頼性の評価をーみたいな話、 だ、と、なんか EXE と一緒じゃないかなぁ。

(20:18)

_ 追記

http://rainer.blog7.fc2.com/blog-entry-40.html#comment

スクリプトと同じくコードとか作ったものの公開とかも 出すのはめんどくせーけど出しちゃえば 楽しかったりどうでもよかったりはするというような。

思いかえすにどうでもよいことが結構多いので どうでもいいかもしれない

とか書くと何が言いたいかわからんという

(20:21)

_ ubuntu

初心者でごめんなさい ubuntu の glibc の man ってどこにあるの…

(22:19)


2006-11-04

_ 素晴らしいウィンドウマネージャと言えば

sawfish は自分では使ってなかったけど良いものだったような。

設定ファイルは Scheme 、ただしその設定は たいていは GUI で行える、という。

うーんやりたいことキューがそろそろ。

やるべきこと
ゴルフ
やったほうがいいこと
ろんぶん
やりたいこと
たくさん

論文がやったほうがいいことでしかない理由は、 まぁ卒業しなくてもなんとかなるよね…というような。 ホントになんとかなるか試してみる略とか。

(03:06)

_ まぁ

試す価値があるほどイヤではない

(03:07)

_ swtich は

彼が76出した時からたぶんこいつ71いくなーと 思ったんだよなぁ。ほげほげ

(11:45)

_ autotools

UZEEE

automake 使ってなくて PKG_* 使う方法は如何に。

(21:39)

_ pkg.m4

にある。その位置は /usr/share/aclocal/pkg.m4

あー

わかった。 aclocal 実行すればいいのか。 謎実行ファイル aclocal の謎が解けた気がした。

(21:45)

_ sf.net の認証が通らなくてうけます

(22:10)

_ あひゃ

SVN アクセスが NO だった。

shinh	shinh 	Yes 	No 	Yes 	No 	No 	A 	Admin&Tech 	Moderator 	- 	- 	-

(22:20)


2006-11-03

_ 自分のできない問題を

頭がいい人の問題、で片付けるのは ダメだというのはわかってるんだけど、 それだけどなんか違うものがあるんだよなぁ問題の質っていうか。

パスカルなんかは頭いい人問題だけどなんかできてるし。

(00:55)

_ そういえば

インテルの街頭宣伝で、 Core Duo はスゲーっていうやつが結構面白かったんだけど、 なんか40%の性能向上に成功、って言ってた。

でなんか Mac サマは Core Duo で 4倍ということで、 つまりえーとPPCはどれだけ負けてたんでしょうね。

(01:12)

_ X-Windows の悲劇

http://tabesugi.net/memo/cur/a3.html#271620

おもしろいる

(12:00)

_ ときとうあみ

(15:21)


2006-11-02

_ なんだっけー

あーなんだったかー

思い出せそうなんだが

金だ金。

ああ思い出した。

ゴルフのアルゴリズムと小細工の関係と 仕事するか倹約するかって関係は似てて、 アルゴリズムを改変する方が ドカっと縮むのはわかっているけど 小細工が楽しくて走ってしまう…というのと、 仕事した方がドカっと金入るけど めんどいから倹約して生きるよ… っていうのが似てるようなという。

近視眼的な小細工/倹約の方が悪いと なりがちだけど、 楽しいからいいじゃん、 仕事つまらんからいいじゃん、と。 金だけが効用関数の変数じゃないのと同様に、 バイト数だけがゴルフの効用関数じゃないんじゃよ…

どうでもいいことを思い出した。

(00:13)

_ PKU3070

同じく撃破。 ヒントの意味が未だによくわからない。

あと103Bだけどまだ短くなるだろうなぁチック。

(11:10)

_ bi- も 2.0 も

二なんだから、当然だよね

(13:15)

_ 売上レポ〜ト

1冊も売れんもんなのだなぁと思ってたら 注文レポ〜ト見ると3冊注文入ってたのであった。

ついでによくわからん本が5冊経由で売れてるらしい。 へえ。

よくわからんけど11冊売れれば3.25%もらえるって理解でいいのか。 どうでもいいけどこの3.25%って数字は 5人で割った印税より多いわけだが、 なんかすごいなぁ。

(13:31)

_ つまり

アフィ同盟。

何人かで組んでみんな同じプロキシを使う。 アマゾンを使った場合、 自分のIDじゃないところに、適当にふられる。 適当に、っていうのはたくさんアマゾンを 利用している人ほど収益も増えるような感じで。

でもそれって使ったお金の3%還元でしか無いのよね。

(13:34)

_ つまり

http://shinh.skr.jp/m/?date=20061102#p01

働けと。

(13:35)

_ 8B減ったかー

http://d.hatena.ne.jp/Ozy/20061102#p1

俺のどんなんだっけ。

x,y=1,t,k,n;main(){
  for(;scanf("%d",&n),~n;printf("%d\n",x))
    for(;(k-n)%30000;k++)t=(x+y)%10000,x=y,y=t;}

ダメだこりゃ。普通に書いただけじゃんこれ。 そもそも main の中に変数無いとか ++ を他の計算に合成してないとか。

(13:37)

_ つか

k* さんが 93B かー。

(13:38)

_ 第二版からは

店頭でお求めやすい、無難な表紙です

futhacks2.jpg

(14:09)

_ ふたなり

むしひめさまやってきた。

とりあえずマニアックで。ひとりめでアブノーマルじゃない方。 一面で全部死んだ。 ひさびさだ。 んで次にふたりめでアブノーマルの方でやった。 一面で全部死んだ。

悲しくなったので、オリジナルモードをやってみた。 今度は3面までいけた。 むしひめさまと違ってオリジナルが普通な感じなんだろか。 でもオリジナル弾速速いしなぁ。

(16:10)

_ へー

http://d.hatena.ne.jp/keyword/%c9%cd%c3%cf%bf%b5%b0%ec%cf%ba

勝手にできるのね。

(17:14)

_ cron止まってるかもなー

(17:18)

_ Y

Y コンビネータってそいう意味だったのかー

http://d.hatena.ne.jp/oto-oto-oto/20061010

普通に書いてあるじゃんー

http://www.loveruby.net/ja/misc/ycombinator.html

ついでに目に入ったのでコメント。

(17:26)

_ 赤本

http://www.google.com/search?q=OpenGL%20redbook%2epdf&ie=euc-jp

via http://d.hatena.ne.jp/logion/20061102#p1

redbook って赤本じゃよねー。

赤本ぽい。

いい話だなぁ

(17:40)

_ おおお

http://www.garmy.jp/data/20011020kidsgoo.html

なんて有用なサイトだ

ただ2001年かあ

(17:50)

_ coherent state

消滅演算子の固有状態として導入したいんだけど、 やっぱめんどいみたいだ。

(17:58)

_ 10分

http://ameblo.jp/programming/entry-10001721422.html

でっきるかな

2006年 11月 2日 木曜日 18:15:42 JST

(18:15)

_ できた気がする

2006年 11月 2日 木曜日 18:18:59 JST

(18:19)

_ private に置いてた

以外はできてたぽい。

2006年 11月 2日 木曜日 18:21:56 JST

なんか今まであんまやらんかったけど topcoder 系やりたいなぁ。

(18:22)

_ DMD 0.173

> * Template instantiations can now accept alias parameters for local variables and nested functions.

ほえー

> * Implemented Signals and Slots.

ほえー

> * Implemented variadic template parameters

ほえー?

(18:36)

_ 可変長と

思いあたらなかった僕はもうだめだ

(18:37)

_ prime factors

1st  kinaba     83   Perl     10,000 (v16)
2nd  kik        83   Ruby     10,000 (v23)
3rd  mame       83   Ruby     10,000 (v14)
4th  shinh      83   Ruby     10,000 (v31)

ホントにこれがマックス?

(19:29)

_ local なんちゃら

import std.stdio;
import std.string;

template T(alias a) {
    void f() {
        writefln(toString(a));
    }
}

void main() {
    int i = 1;
    float f = 1.2;
    T!(i).f();
    T!(f).f();
}

これは遊べるなあ

Toy 言語の座は Perl ごときにはやれんと思うのですよ

(22:54)

本日のツッコミ(全5件) [ツッコミを入れる]

_ k.inaba [注文しました! 無難な表紙を見てたらだんだん盤面まで http://monokuro.tv/cache/data/2..]

_ shinh [その手がありましたかっ…全文みさくら語変換して売ったらいいんじゃないかとかそんな話もありました。 それはそうとそん..]

_ Gus [http://blog.proj.jp/ituki/20041128.html#p09 2004年11月の情報だそう..]

_ k.inaba [うあーすみません。あれだったら適当に消してください(微妙にマジレス)。"read.cgi"辺り単語レベルで嫌われてた..]

_ shinh [もうしわけありません。最新の研究によると k.inaba さんは無罪で、 kids goo に嫌われる理由は自業自得..]


2006-11-01

_ font

font.gif

感動的なフォントだった。

んーむ。

(15:06)

_ cmigemo

詳しい経緯は思い出せないけど、 cmigemo-1.3 ではなく cmigemo-1.2 を使っていたようだった。

(00:34)

_ スラド面白いなぁ…

http://slashdot.jp/developers/comments.pl?sid=338602&op=&threshold=-1&commentsort=0&mode=nested&pid=1048933

このスレッドで始まるとかすばらしすぎる。

にしてもたしかにツール使う系多いんだなぁとか。 ラクに書ける&外しにくい、ってことで 書き易いとかなんかなぁ

(11:24)

_ あう

普通に評判いいし。

んじゃ書くか。 つか清書を。

どうでもいいけど od --help 以外は本当に一切調べなかったんだけど。 よくわからんオプションだんだん覚えてきてるなぁ。

(16:12)

_ アフィ

http://0xcc.net/binhacks/

に JS でランダムで入れるって話だったので、 大昔に取得だけして全く使ってなかった ID を 登録してもらってみたのだった。

http://amazon.co.jp/o/ASIN/4873112885/shinhskrjp-22/ref=nosim

んーつまり shinhskrjp-22 を URL の後につければいいんですな。

まぁ記念パピコみたいなそんな。 なんかリンクたどった人の数とか見れるのは嬉しくはあるし。

これ20冊とか売れてやっと1500円もらえるとかそんなペースなんだよね。 どう見てもムリ。

(16:19)

_ アマゾン殺しはネットを殺す

らしい

http://koumokuten.iza.ne.jp/blog/entry/28329

いやえーとそうなんのか。

うーん全然わからんかった。

どうでもいいけどアソシエイトは売上げ増やすとかより アマゾンロックイン的なあれがすごそうなイメージがあって 好きくなれないのであった。

(16:29)

_ ミニセミナー

そういえばOSCのミニセミナー見てて、あれやりたいなと思ったのであった。 適当にPCつないでヨタ話をしょぼしょぼする

(16:32)

_ .mlterm/aafont @nii

ISO8859_1=-kochi-gothic-medium-r-*-*-%d-*-*-*-*-*-iso8859-1

(18:49)

_ もうちょい工夫しろよとか思った

n=gets.to_i;gets.scan(/.{#{n}}/){eval'puts$&.reverse'[0..-($.+=1)%2*6-1]}

(19:12)

_ 適当にぐぐって

最新版野良ビルドとか

http://ftp.yz.yamagata-u.ac.jp/debian/pool/main/d/ddskk/

とか入れさせてもらうもだめぽい。

んーむ。もげもげ。

(23:28)

_ ほむほむー

http://d.hatena.ne.jp/nushio/20061101#p1

どうでもいいけどこないだの 熱力GCの話はざっくり読んでわりとがっかりした。

(23:48)

本日のツッコミ(全2件) [ツッコミを入れる]

_ Gus [>どう見てもムリ。 http://d.hatena.ne.jp/jtakesako/20061030/1162206..]

_ shinh [オフレコですが初版の表紙はこんな感じです。 http://shinh.skr.jp/t/futhacks.jpg]


2024年
11月
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
1.Gus(2014-05-24 02:34) 2.shinh(2014-05-24 02:34) 3.kosaki(2014-05-24 02:34)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h