ToDo:
http://shinh.skr.jp/m/he/estseek.cgi?phrase=%E3%81%A9%E3%81%86%E3%81%A7%E3%82%82%E3%81%84%E3%81%84
俺の人生とかどうでもいいということだろう。
(03:01)
FC5 環境で ./configure なものを ビルドして stow でつっこむツールを作って、 つっこんだ stow なものをアップロードする 仕組みを作っておけばとか。
i@u ~> du -hs /usr/local/stow/ 2.0G /usr/local/stow/
アップロードする場所なんてどこにもない。
(08:06)
http://d.hatena.ne.jp/ytqwerty/20060817#p1
つまり int font={0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,....}; みたいな 配列を 1x1 フォントとして 使用料10おくえんのライセンス General Billion License とかで 配布して、 そこらじゅうの画像に対して 俺のフォントを無断利用するな金払え!とか そしたら寝て暮らせていいなあ。
http://www.chiba-denpa.ac.jp.faireal.net/#id2006
みたいな話
(11:05)
やっぱ入れた。
(20:32)
メモリのどっかに関数アドレス置いて、 間接 call でぴょーんと飛べるはず。 でもそれだと opcode 自体書き換えてていかにもアレなので、 call => jmp => ってストーリーが無難かなぁ。
(02:45)
どうでもいいけど gcc -S より objdump -Sr の方が好きなんだよなぁ。
0000000000000000 <main>: #include <stdio.h> int main() { 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp return (int)stdout; 4: 48 8b 05 00 00 00 00 mov 0(%rip),%rax # b <main+0xb> 7: R_X86_64_PC32 stdout+0xfffffffffffffffc } b: c9 leaveq c: c3 retq
これが
0000000000400498 <main>: #include <stdio.h> int main() { 400498: 55 push %rbp 400499: 48 89 e5 mov %rsp,%rbp return (int)stdout; 40049c: 48 8b 05 ad 03 10 00 mov 1049517(%rip),%rax # 50085 0 <__bss_start> } 4004a3: c9 leaveq 4004a4: c3 retq
こうなってた
(11:33)
色々共感とか納得とかして面白い。
http://otsubo.info/contents/ewords/eword.html
マクドナルドはそれ以前に マックドーナルとかになってて聞き取れなかった。 For here or to go? とか聞かれたら たぶんそのままオウム返しにして、 相手が別の言葉で言いなおすのを待つな、たぶん。
Sorry? とか Pardon? は聞き取れてない時に使って、 オウム返しは聞き取れたけど意味が取れてない時に使うクセがついてるけど、 まぁ良い処世術な気がする。 オウム返しにしておけば、 「聞き取りはできたけど、意味が取れない」って伝わるだろうし。
(11:50)
#define _GNU_SOURCE #include <math.h> #include <dlfcn.h> int main() { double (*c)(double) = dlsym(RTLD_DEFAULT, "cos"); printf("%p\n", c); // return (int)cos; }
は最後のコメントがあるか無いかで、 出力されるアドレスが全然違う。 要するに PLT が作られるか作られないか、ということだけど。
困るのは amd64 だと、 PLT が無い時に near call では届かないアドレスになっちゃう、ってこと。
あと、関数じゃなくて、 stdout みたいなものを 同じようにやってやると、 .bss になんか値が置かれるみたいなんだけど、 えーとこれどうやってやってるのかよくわからんなぁ…
(13:05)
(14:32)
http://alohakun.blog7.fc2.com/blog-entry-412.html
int sum() { int *f = (int*)__builtin_frame_address(0) + 2; int s = 0; while (abs(*f) < 0x1000000) { s += *f; f++; } return s; } int main() { printf("1+...+1 = %d\n", sum(1)); printf("1+...+2 = %d\n", sum(1,2)); printf("1+...+3 = %d\n", sum(1,2,3)); printf("1+...+4 = %d\n", sum(1,2,3,4)); printf("1+...+5 = %d\n", sum(1,2,3,4,5)); printf("1+...+6 = %d\n", sum(1,2,3,4,5,6)); printf("1+...+7 = %d\n", sum(1,2,3,4,5,6,7)); printf("1+...+8 = %d\n", sum(1,2,3,4,5,6,7,8)); printf("1+...+9 = %d\n", sum(1,2,3,4,5,6,7,8,9)); }
まぁ無理。最適化ってなんですか。
(15:51)
くらいを仮定できると…って話か。
(15:57)
うーん足りない。 これでは w3m にまだ勝てない。
つーわけで。
(16:51)
なんとなく書く。 3年もして読めば面白かろう。
(21:33)
過去のマシンは u2 から順に数字を取っていくらしいけど そのルールは全然実践されていないというかその場の気分。
u2 は無印 Pen 133MHz, 64MB, 6GB とかのすばらしいマシン。 これで sdmkun とか作ったとかなんとか。 今となってはありえん。
あと uw とか u2 とか名前変わったりしてたけど 材料拾ってきたデスクトップが。 Athlon 750MHz => Athlon 700MHz => PenII 600Mhz などと バージョンダウンしていったのは記憶に新しいが なんというか理由は CPU 蹴ったとかほこりがつもったとかで つまり机の下の椅子の下というか 足元に裸で置かれていた不遇のマシンというか。
sayさんにものもらって uw とか u2 とか名前変わってたヤツは すばらしい進化を遂げたりしつつ、 まぁ俺はデスクトップを非常に雑に扱うということが よく教えてくれたマシンだった。
(22:06)
http://mkosaki.blog46.fc2.com/blog-entry-166.html
57は素数じゃなかったのか。
どうでもいいけど100以下の素数は、 97とか89とかしまりが悪い気がしてならない。
シスター☆プライムス
あなたの家に突然 人程度の妹が大発生しました。どたばた騒ぎの中、明らかになっていく一族の秘密とは…とかそんな感じで素数ちゃんとかなんでも擬人化のノリで作って下さい。
2 ちゃん。末っ子。兄弟唯一の仲間はずれ。名前がアレ。かわいそす。
3,5,7ちゃん。兄弟唯一の三つ子。でも3ちゃんと7ちゃんは妾メルセンヌの子というウワサも…
どうでもいい
(03:44)
できたこと
やったこと
(21:56)
化物に勝つには…とかは冗談というか 別に勝ちたいとも思わないのだけど、 一方的にこっちの take だけがあるだけの状態みたいな ことになっちゃうと、 それはまぁたぶん take も消えるわけで、 仮に消えないとしても悲しいし。
まぁ具体的には僕とほげほげな人の関係に その逆を見るんだけどそれはいいとして。
というわけで部分的にでもなんか 伝えられるものがある状態を維持したい という程度のことは意識しよう、というか。
(11:06)
__builtin_expect 。 この関数のなんかほげほげなところは、 1/2の確率で使ったにも関わらず同じコードが生成される ことじゃないかなと。 ARM だとこいう情報はかなり有効につかえたりするんかなぁ。
あと便利どころは __builtin_(frame|return)_address とか。
(11:35)
#include <stdio.h> void p(const char *s, ...) { void *d = __builtin_apply_args(); void *r = __builtin_apply(&printf, d, 12); __builtin_return(r); } int main() { p("%d %d\n", 1, 2); }
int main() { void *ptr = malloc(5); int x; printf("%d\n", __builtin_object_size(ptr, 0)); printf("%d\n", __builtin_object_size(&x, 0)); printf("%d\n", __builtin_object_size(0, 0)); }
(11:46)
http://www.tietew.jp/cppll/archive/12749
printf("hoge\n"); が puts("hoge"); に化けるのは 知ってたけど…
(11:51)
(23:46)
_ shinh [エラー出る?]
XP 導入で開発効率が上がった! ってのは、 XP それ自体の効果より XP を導入することによって開発者が 仕事の効率とかそういうのに主体的になったとか そういうことによるモチベーションとか向上の方がデカいんじゃないかとか、 ずっと思ってるけど、そいやそいう話はあまり見ないような。
弱い子は宗教ならなんでもいい、 ってのと似てるとか。
(08:38)
とったわ。
i@u wrk/icfpc/2006> ./cntpub.rb INTRO: 230 CIRCS: 1322 BLNCE: 900 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 304 5066
(03:08)
i@u wrk/icfpc/2006> ./cntpub.rb INTRO: 230 CIRCS: 1322 BLNCE: 908 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 304 5074
たった8てんのために…
(04:45)
今回の ICFPC 、確かに UM は速くないとダメで、 基本的な点数取るなら手で解けるんだけど、 速く解きたい場合や、コード短縮などで高得点を目指す場合、 つまり本当の上位を目指す場合はラピッドな開発力みたいなものが 要求されるような。 Caml Riders とかいいもん作ってるように思う。
(04:50)
インチキで解いた。 一応これで問題は全部解いたことになる。 期間内にこれ全部やった子を心底尊敬するよ…
i@u wrk/icfpc/2006> ./cntpub.rb INTRO: 230 CIRCS: 1322 BLNCE: 1094 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 304 5260
(05:35)
した
i@u wrk/icfpc/2006> ./cntpub.rb INTRO: 230 CIRCS: 1372 BLNCE: 1094 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 304 5310
つか上位の人はインチキ無しでこれより点数多いのかなぁ…?謎。
(20:03)
arith の答えチラ見したから コツをつかんだというのもあるけど、 正直 UM 高速化したのがでかい気がする。 今回のステップ数は当時の UM じゃ完走できなかったよ…
i@u wrk/icfpc/2006> ./cntpub.rb INTRO: 230 CIRCS: 1376 BLNCE: 1094 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 329 5339
(23:00)
UM の中でそんなに NAND って使ってないと予想されるので、 BALANCE 起動するまでは普通に起動して、 スナップショットを保存。 そんで LOGIC を書き換えた別バージョン UM でロード。 ってのはアリかも
(00:40)
,-'~~~'-, .~ `. ~. / 8 | \ : ,' : | .--~ | ! ; ! \ | 8 / `. ', .' `-.___.-`
2つついてるの 8 かよ!
(17:11)
Puzzle 9: Diagonalia WENNEEE ENNNNSN NWNSNWN ENNNSNN 18 18 1> -3^ - - o o o o o o o o o o o o o 3>1> -2^ - - o o o o o o o o o o o o 0^0v1> -2^ - - o o o o o o o o o o o - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - o o o o o o o o o o o - - - - - - - o o o o o o o o o o o o - - - - - - o o o o o o o o o o o o o - - - - $ o o o o o o o o o o o o o o o o o o o
なんつーか方針がそもそも間違ってる…
(06:28)
アリの行動4つってのはワナでしか無いワナ。
Puzzle 9: Diagonalia WENNNNS ENNNSNN NWNSNWN ENNNSNN 18 18 1> - - - - o o o o o o o o o o o o o 0v1> - - - - o o o o o o o o o o o o -0v1> - - - - o o o o o o o o o o o - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - -0v1> - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - o o o o o o o o o o o - - - - - - - o o o o o o o o o o o o - - - - - - o o o o o o o o o o o o o - - - - $ o o o o o o o o o o o o o o o o o o o
(06:32)
で50点とるのに苦労した…
INTRO: 230 CIRCS: 1322 BLNCE: 750 BLACK: 1000 BASIC: 100 ANTWO: 400 ADVTR: 810 ADVIS: 304 4916
(08:37)
前 | 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 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ shinh [つっこみてすと]