トップ «前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:


2007-02-19

_ これか

js.c 。

   /*
    * Turn buf into a JSString. Note that buflength includes the trailing null
    * character.
    */
   str = JS_NewString(cx, buf, buflength - 1);
   if (!str) {
       JS_free(cx, buf);
       return JS_FALSE;
   }

で、 jsscan.c では、

   buf[i] = '\0';
   return i;

とかやってる。 つまり js.c はコメントからして間違っている。

パッチは瞬時に書けるけど検証とか色々考えるとめんどいか。 最新版でもなおってみたいなので 暇な時にでも Nightly とか見てからパッチ投げるかぁ。

(00:09)

_ 俺と

http://d.hatena.ne.jp/w_o/20070218#p3

忍耐力は、他同様、人それぞれだと思う… さっぱりついていない典型例がここに。 あと今に至るまで勉強は単なる趣味なので 受験とかあんまり我慢でも無かったんだよなーという。 英語つまらんから気張らしに物理やるとかそういう。

正確な文書はまさにそうで、 例えばレキシカルスコープという単語を見るとびくっとする。 未だに意味がよくわからない。 {} のことかな。

ということで斜め読み。

http://www.geocities.jp/m_hiroi/func/smlnj04.html

なんとなくわかったような。 Ruby の最近の議論はダイナミックにしようとしてるのかな。

一方一応専門としている物理の方は、 と、言えると良いのだけど、 むしろこっちの方がヤバいって勢いで専門用語が使えない。 「ユニタリ変換のエクスポネントって何ですか ハミルトニアンのことですか? そうならそう書けドアホ」 とか言われていじめられたり、 「それただ○○ってだけだよね」 とか言われて、○○の意味がサパーリわからなくて 「あー、それ」とか適当にゴマかす人生なわけだ。

というわけで

  • (落ちこぼれなければ)正確な文書が書ける
  • (頑張れば)忍耐力がつく

くらいじゃないかとか思うのでした。

あと難しい問題も色々あやしいと思うけど、 出会ってる人もたくさんいるのでまぁそうかもなーという。

(02:36)

_ わらた

http://d.hatena.ne.jp/sumii/20070217/p1

この手の技術で場合によって縮む言語とかあったら面白いだろうな

(02:41)

_ ただ

Haskell の表現力の強さは本物だなぁと思う。 正直 OCaml はダメだコレという感の記述力の無さだ。 OCaml の大嫌いな部分である string_of_int だとか print_int だとか *. だとか そのへんがモロに影響する。 強い型付けのために…という言い訳は、 Haskell やら GCaml なんか考えると言い訳になってないかなぁ。

でも OCaml は久々に触っても割と書けるのは良いなぁ。

うーむ Haskell 強い。なんか見直すものがあるな。 ハスなんとかとか言ってごめんよ。

http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20070217#c01

ふとお前の言語選ぶ基準はゴルフかと自問する。

ちなみに僕の e.rb はこんな。あと 8B は実に遠い

a=2*v=10**?d
a+=v/=$.+=1while 0<v
p a+36

(03:11)

_ rescue

最近こう書けると知った。

nil+1rescue p$!
raise'str'rescue puts$!

これ結構短いんだよなぁ。 今までの問題で適用できたのもあったのかもしれない… が、今さら見返すとかはなんていうか無理だ。

(03:47)

_ 論文を書くのがつまらない

理由として、結構頑張って書いてもクソみたいな クオリティだったりすることがある。 それで楽しさが減らされちゃってるてのを考えると、 慣れるとこれも楽しいものなのかもしれない、とか思うんだけど。

もうちょい文章書くの慣れたらもう一度考えてみると良い。

(04:11)

_ 人類の大罪は

水曜までに処理

(04:26)

_

http://park7.wakwak.com/~blackbox/#dd2007-02-18_01-50-17

そもそもテストサバは ネットワークから断絶されてる(はず)なので、 example.com は誰かアクセスできるバグ見っけたら 記録出してみて下さい、っていう趣旨のものです。 というかアクセスできたら Ruby は

open'open-uri'
$><<open('http://example.com/').read

とかで終わりなので。

(05:22)

_ なんだよ

open'open-uri' って。もちろん require'open-uri' が正解。 ってか shebang でやった方が短いか。

(05:24)

_ スピードを

http://golf.shinh.org/p.rb?All+Expressions#Ruby

最適化しまくったところ通った。 元のコードは何Bくらいだったっけという感じだ。

(08:31)

_ unlambda

せっせと考えたけど1文字読み取って 1文字吐くくらいのプログラムしかできないのであった。

動きみないと死ねるので、 インタプリタ書いておられたなーと思って 眺めてみるもなかなか大変そうで死ねる。 たぶん d の実装が大変なんだよね。

http://d.hatena.ne.jp/oto-oto-oto/20061226/1167145829

(14:43)

_ AWK本届いたのでがんばります

http://www.garbagecollect.jp/~usa/d/200702b.html#id20070219_P4_1

ホントか

(21:12)

_

IMG_Load ってマクロじゃなかったのか… あー magic だけじゃなくて拡張子も判別の情報になるからかな。

(22:20)

_ どうでもいいけど

example.com 落ちてるよな

(22:45)

_ 何コレ

ていうテクニクがたくさんあるな。 全然 Perl 脳になってないなぁ。

http://www.nmt.ne.jp/~ysas/diary/?200702b&to=200702191#200702191

とりあえず -lp 使ってないのはひどい。 寝てるとしか言えない。

(23:08)


2007-02-18

_ pid

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

僕はこの手のコード見てうひひと思うのは好きなのだけど、 にはさんがインチキするかしないかで四苦八苦とか してるのを考えると、 確率的な方法は潰せるなら潰した方がいいのかもなぁという。

うん。というわけで、ですね。 getpid のカウントを取るとか、 まぁそいうのはアリっちゃアリなんだが、 まぁめどい。

でもとりあえず

echo 0 > /proc/sys/kernel/randomize_va_space

しといた。

うーんめんどいから各自適当に shinh(cheat) とかで 対応していただければ。

あーでもシステムコールのフックはちゃんとやりたいなぁ。

(07:09)

_ にはさんには悪いが

http://golf.shinh.org/p.rb?show+the+way#Ruby

これしか無いよなーというチートをしてたら 当然のようにフラたんとバイナリサイズが同じで面白い。 でも 7B も負けてるなぁ

差が2Bになった

まぁマジメにも解こうよという

(07:23)

_ こっちでも

http://golf.shinh.org/p.rb?show+the+way#sed

2B負けてる。

1B差になった。

1B勝った。

(07:31)

_ しかしまー

Rubyの人ってのはすごいなぁ。 こう俺がそれなりに長い間かけて蓄積してきた 大量のバッドノウハウを使って問題解いてるのに、 普通に追いついてくるっていうか。

(08:05)

_ 世界樹

FOEと戦うとTPが全快するから 帰る機会が無いなーと突撃してたら全滅した。 結構な時間が。

(09:30)

_ アレフ

http://www.aleph-lang.org/

これ入れてみたんだけど、 ベル研のヤツは Alef だよなと思ったのであった。

(11:13)

_ 言語増やすのに夢中になってたら

フロ湧かしすぎた

(11:16)

_ ゴルフのしすぎは

あなたの家を火事にする恐れがあります。

それはそうと hello.curry は相変わらずリンク通らん。

ということで A+ と J かなぁ。

(11:19)

_ そしてうめすぎた

うめるって関西語かね

(11:38)

_ なるほどなぁというか

プロセス落ちてたのは、 大量の出力があるスクリプトが submit されたからっぽい。 プロセス自体がメモリバカ喰いするとかは すぐ殺されるので問題無いのだけど、 親に大量の出力が来て親が死ぬと終わる、という。 まぁプロセス起動する部分の回りを for i in `seq 1 1000` とかでかこっておいた。

で、この場合、

   o = stdout.read

とかでメモリがものすごいことになって死ぬわけだ。 そらそうだ。

んで、

   o = stdout.read(10000)
   e = stderr.read(10000)

とかでいいだろーと思ったんだけど、 なぜか stderr.read(10000) の方が帰ってこなくなった。 stderr に内容がある場合は大丈夫。 あとタイムアウトじゃない場合も大丈夫。 ふーむ IO まわりはわけがわからない。

まぁプロセス死んだ場合は自動再起動するようにしたので、 帰って来ない場合はメモリオーバーで死んでくれた方が ありがたい。よって o = stdout.read で放置しよう。

あ、正解です! むしろバグ発見ありがとうございますというか、 全体的にいいかげんなシステムですいませんという。 ちなみに Ruby だと少々頑張っても プロセス止めるくらいの stdout を送るのは できないみたいだったので、 Erlang の方が速いのではないかという謎の予測が。

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070218#p03

(21:58)

_ というか

Erlang の使いかたのアドバイスありがとうございますという。

(22:02)

_ しかしみんな

いい問題次々考えるなぁ。

http://golf.shinh.org/p.rb?Booklet+Printing

こういうのは Ozy さんが鬼のように 得意という気がするがどうだろう。

俺が出したのって hello とチート伝説 echo と、 冗談でしかない example_com と 42 だけ。 42 は SF ジョーク言えるなんて 俺もハカーの仲間入りじゃね? とか調子乗ってたけど eban さんに自分の甘さを認識させられた。

(22:26)

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

_ niha [帰ったらまあまともに縮めます。まだ縮むし。帰るの遅いけど。]

_ kosaki [ゴルフ場に限って言えばシステムコールのフックをまじめにやる必要は全然ないんじゃない? 単純にmmapとかgetpid..]

_ shinh [ええ、 LD_PRELOAD でいいというのは、ほとんどの場合正解だと思うのですが、 C や GAS なんかでは、イ..]

_ jijixi [こちらこそ、楽しい遊び場を提供していただいて、ありがとうございます :-) ところで、その後ちょっと調べてみたところ..]

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


2007-02-17

_ 明らかに一人やってることが違うので

公開 exit.rb

p (~/e/-3)%258

(00:53)

_

これと僕の混ぜるだけで5Bは縮むな。

http://www.math.sansu.org/u/diary/?date=20070216#p04

(01:01)

_ kernelも意見発信したい><

procfs とかにファイル生やすとかそいう苦労をしたくない場合、 printk とかしか無いのかな。 これはめんどい。

(04:35)

_ 参考文献

http://www.atmarkit.co.jp/fsecurity/rensai/rootkit03/rootkit02.html

を見てたんだけど、 これのまんまパクリなんじゃないかとか思った。

http://www.csg.is.titech.ac.jp/~kourai/memo/linux_kernel.html

(04:41)

_ 考えをあらためた

syscall_table.S ってのがあるみたいだというあたりで…

http://kerneltrap.org/node/5802

要するにオマエはバカだと言われているようだ

つまりなんつーかですね。 システムコールなんか Ruby で呼んでもたぶんデカいわけで、 GCC 一派だけ strace でしばりかけて、 他は .so でしばってもいいんじゃね、という

(05:45)

_ ぐおー

体だりーので予定していたアップデートの類いはちっともしてない!

だりーだりー!

とりあえず Minus はあのフラたんが esoterisのこと50% ゴルフのこと50%とか 考えて作ったに違いない -= しか演算が無い ヘンな言語なので試すといいよ!

http://darrenks.com/minus/

特徴はループがむっちゃ書きにくいこと!

aaaioac4 とかで無限ループ echo だ!

a-=a;  // a を 0 に
a-=i;  // a に入力(i)
o-=a;  // a を出力(o)
c-=4;  // 4個戻る(cはプログラムカウンタ)

あとは止める方法考えるんだお! ちなみに o-=i だと負数吐きやがる!

(06:32)

_ esoteris

って何! 知らない単語無理して使うんじゃないよ!

(06:33)

_ よくわからんけど

なんか Ruby のバグ踏んでる気がして 1B 減らない。

(08:13)

_ ぎぐぐ

ひどい。糸忘れたから ミッションクリア後に全滅した。

(09:37)

_ 第五層

ウケた

(10:40)

_ るびのばぐ

じゃねって言ったヤツはばぐでもなんでもなかった><>←さかな

(12:09)

_ ねぼけた

ねぼけて目覚ましが鳴ってるのを PCが鳴ってるんだと思って なぜか Ctrl+Alt+Del った。 結果再起動してくれた。 んで xen 上げなおすのとかねぼけててこずった。

アホというかなんというか

(15:33)

_ さすがに

こんな綺麗なコードが最短なわけないね。

これはたぶん面白い問題な気がするなぁ。

http://golf.shinh.org/p.rb?multi_key+sort#Ruby

(18:15)


2007-02-16

_ 隠蔽

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

D は、

class C {
  int i;
  this() {
    int i;    // 合法
    {
      int i;  // 非合法
    }
  }
}

のはず。

 1. コンストラクタとsetterでは、セットする変数と同じ型の引数を受
    け取り、引数の名前はフィールドの名前と同じになることがある。
    同じであってもよい。

どの言語の話なんだろう。

#include <stdio.h>
struct C {
	int i;
	C(int i) {
		i=i;
	}
	void print() { printf("%d\n", i); }
};
int main() {
	C c(1);
	c.print();
}

こんなのは当然 C++ だとダメなので、 this->i = i; とかするんだろうか。 いや C++ なら C(int i) : i(i) {} でいいんだけど。 パイソン子なのかな。 まぁ僕はメンバが i_ になってるか、 引数が i0 になってるか、が慣用化されてるなぁ。

まぁ

 2. フィールドを参照する際にいちいち読みにいってほしくないとき、
    ローカルにキャッシュとしてフィールドの値をおいておくことがあ
    る。この名前は同じになる。

これがあるので、 D が一つ目が合法なのは 全然正しく感じる。

んで関数内のブロック内の隠蔽はなー。 あ、ちなみに

class C {
    int i;
    this() {
        int i;
        void delegate() d = delegate void() {
            int i;
        };
    }
}

は合法みたいだ。

んで関数内のブロック内の隠蔽は 禁止しておいた方が妥当な気がするけど、 俺は結構やりたいなーとかいう。

int main() {
  SDL_Surface* s = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
  // 長い時をへて
          if (hoge) {
            int s = 1;
          }

とかをしばられるのがなー。 いや行儀悪いんだけど書き散らかしコードだから許してよーという。

(15:52)

_

JSのエントリが一個メモリ不足で死んでるな。 ていうか 99 で速度不足とか大丈夫だろうか。 cron動いてたとかかもしれないけど。

(15:57)

_ compile time function evaluation

http://www.digitalmars.com/d/function.html#interpretation

思ったより適用範囲が広い。 これ入力固定の BF インタプリタくらいなら動く?

(16:02)

_ まぁ

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

よく使う機械語命令長くらいなら最近は覚えた…と思いつつ、

i;a[] = {4, 9, 2, 3, 8, 6, 3, 2, 1, 3, 5, 7, -0x80000000, 0x7FFFFFFF};
main(){
    qsort(a,sizeof(a)/4,4,"YXZ\x83\xec\f\213\0+\x2\303");
    for(;i<sizeof(a)/4;i++)
        printf("%d ", a[i]);
    puts("");
}

もろに sub じゃダメってケースだった…

% ./a.out
1 2 2 3 3 3 4 5 6 7 8 9 2147483647 -2147483648

まぁ

irb(main):001:0> disasm("\x55\xb9\x01\x00\x00\x00\x89\xe5\x8b\x45\x0c\x8b\x10\xb\x45\x08\x39\x10\x7f\x07\x0f\x9d\xc0\x0f\xb6\xc8\x49\x5d\x89\xc8\xc3")

/tmp/irb_disasm1672.0:     ファイル形式 binary

セクション .data の逆アセンブル:

0000000000000000 <.data>:
   0:   55                      push   %ebp
   1:   b9 01 00 00 00          mov    $0x1,%ecx
   6:   89 e5                   mov    %esp,%ebp
   8:   8b 45 0c                mov    0xc(%ebp),%eax
   b:   8b 10                   mov    (%eax),%edx
   d:   8b 45 08                mov    0x8(%ebp),%eax
  10:   39 10                   cmp    %edx,(%eax)
  12:   7f 07                   jg     0x1b
  14:   0f 9d c0                setge  %al
  17:   0f b6 c8                movzbl %al,%ecx
  1a:   49                      dec    %ecx
  1b:   5d                      pop    %ebp
  1c:   89 c8                   mov    %ecx,%eax
  1e:   c3                      ret
=> nil

これはちょっと見ただけで ECX のクリアは xor %ecx, %ecx; inc %ecx; に決まってるでしょ! このオバカ GCC ! とかいう感じなのでまぁいいか。 そもそもスタックフレーム作るなとか。 omit-framepointer つけといたらバイナリ長減ったりするのかな。

あと前から気になってたのですが第四引数でわ。

(16:28)

_ AWK

アマゾンで AWK 本注文した。

(16:40)

_ sh

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070216#p02

ls /bin /usr/bin などを送り込んで 確認していただくと良いかもです。

あと「読みやすく」は私の場合 「読みやすく書かなければならない」という 束縛から解放される喜びが大きいなぁ。

あと経由して思い出したように Smalltalk メモ

http://www.gnu.org/software/smalltalk/gst-manual/gst_42.html#SEC102

(17:50)

_ 3300万回

Rubyを起動させたらどのくらい時間を喰うだろうか。

(20:39)

_ うーん

終わりそうもない。

s='!\"\#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
s.scan(/./) do |a|
  s.scan(/./) do |b|
    s.scan(/./) do |c|
      s.scan(/./) do |d|
        s.scan(/./) do |e|
          begin
            p = a+b+c+d+e
            puts p
            fork do
              eval(p)
            end
          rescue
          end
        end
      end
    end
  end
end

Ruby segv を探そうかと思ったのであった

(20:45)

_ 今晩かなぁ

  • Erlang
  • Minus
  • A+
  • J
  • Unlambda
  • Curry

どれも難しいなぁ。まぁ Minus は入れると決まればカンタンだ。 2DとBALANCEはどう考えても無理だ。

あと純然たるマシンコードサイズを競う場として、 スタックとレジスタが全部クリアされた状態で始まる ヤツもあってもいいかもしれないな。

(20:59)

_ そいや16

センセは非常に穏当な意見でつまらなかったのだった。

ふと思ったけど NP-complete 解くってのはアレじゃないかな。 exptime 使って解くってことじゃ。

(21:19)

_ 世界樹

補助魔法とか強いなぁ。 1ターン目に170与えてくるザコの攻撃が 2ターン目に17だったりする

(21:22)

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

_ Gus [> どの言語の話なんだろう。 Javaです。this.m=m;ってthisで修飾するとメンバになります。 そのD言..]

_ shinh [this. は Eclipse が自動生成してたような気がしますが、そうでも無ければキモく感じますねぇ。 あと c..]


2007-02-15

_ 健康ゴルフ

最近風邪をたしなんでいるという感じである。 もうちょっとマジメに原因に取り組む必要があると思う。

  • 飯を喰わない(食事ゴルフ)
  • 栄養偏る(栄養ゴルフ)
  • 寝ない(睡眠ゴルフ)
  • 局所的に忙しい(締切ゴルフ)
  • 医者に行かない(薬ゴルフ)

やめてお兄ちゃんそれ以上ゴルフしたらっ…!って感じだな。 あと部屋のホコリゴルフをしたら健康に良さそう。

(00:14)

_ 世界樹

ブシドーは普通に殴りキャラでつまらんので カースメーカーが入れれるよになったので即交換。

メディなんとか以外みんなイロモノだなぁ

(00:33)

_ Tropy

やっと利用法を思いついた。 官能小説書きためたらいいんじゃ

(02:51)

_ スポイラー!

http://pitecan.com/Puzzle/Predict/janken.html

via http://yowaken.dip.jp/tdiary/20070215.html#p01

じゃんけんゲームのネタバレ。

たぶん Firefox なら勝てるんじゃないかな

戦績: 50勝 0敗 0分け
計算機の手	あなたの手	勝敗
グー	パー	◯
チョキ	グー	◯
グー	パー	◯
パー	チョキ	◯
チョキ	グー	◯
グー	パー	◯
グー	パー	◯
パー	チョキ	◯
パー	チョキ	◯
パー	チョキ	◯
グー	パー	◯
チョキ	グー	◯
チョキ	グー	◯
チョキ	グー	◯
パー	チョキ	◯
チョキ	グー	◯
チョキ	グー	◯
パー	チョキ	◯
パー	チョキ	◯
グー	パー	◯
パー	チョキ	◯
パー	チョキ	◯
グー	パー	◯
パー	チョキ	◯
グー	パー	◯
グー	パー	◯
パー	チョキ	◯
グー	パー	◯
チョキ	グー	◯
パー	チョキ	◯
パー	チョキ	◯
チョキ	グー	◯
パー	チョキ	◯
グー	パー	◯
チョキ	グー	◯
パー	チョキ	◯
グー	パー	◯
パー	チョキ	◯
グー	パー	◯
チョキ	グー	◯
グー	パー	◯
グー	パー	◯
グー	パー	◯
グー	パー	◯
チョキ	グー	◯
チョキ	グー	◯
パー	チョキ	◯
パー	チョキ	◯
チョキ	グー	◯
グー	パー	◯

(04:41)

_ ウソだった

なんか結構乱数で変わるみたいだ

(04:46)

_ ゴルフサバ

いくらなんでも実行遅すぎやろと思うんだが 何が悪いんだろう。

strace かなーと思ったけど ゼンサバ上で strace かまして実行しても あんまり速度変わってなくて、 0.25秒くらいで終わる。 open4が悪いか、なんらかの俺のミスか…

(05:17)

_

やっぱ strace が重かった。 そうだよなー。 フィルタするシステムコールを選択的に 選ぶとかできないからかなぁ。 見てみると wait4 とかが重いらしい。 うーんそいうもんなのかね…

てゆーか -f オプションが遅い。 で、 man 見ると fork を追うって話で、 別に fork なんて追って欲しくは無くて、 やって欲しいのは execve で trace やめるのをやめろ、と。

(06:06)

_ きゅーりょー

608370
505856
346080
104000

えらい多いなー。 逆に言うと使い過ぎである

(07:20)

_ マクグリドル

なんかクーポンがあったので、 この危険そうな物体を食べてみることに。 最初の半分くらいはフツーにうまいじゃんねと思いながら喰ってたけど、 途中からこれはキツいなと思いなおした。

そもそも甘くて腹に溜まるものが得意でない。

(10:27)

_ ヤター

http://golf.shinh.org/p.rb?delete+blank+lines#OCaml

\('-')/

型推論をゴマかすのが OCamlゴルフのコツな気がしたのであった

(11:41)

_ ステキな先生

http://d.hatena.ne.jp/kanbayashi/20070214/p1

(12:38)

_ OCaml

ちょっと標準ライブラリ貧弱すぎんかという。 Haskell並のほげほげプラスOCaml並のほげほげ、 とかは無いんかね

(13:02)

_ うーん

shiroさんかっこいーなぁ。

http://jp.franz.com/base/seminar/2004-06-10/Franz1.pdf

(17:21)

_ OCaml

パーサがなんか Perl チックだよなぁ

# let f x y=();;
val f : 'a -> 'b -> unit = <fun>
# f 1l1l;;
- : unit = ()
#

Haskell もこんなもんだっけか。

(19:19)

_ tanakhさん

かっこえー

http://golf.shinh.org/p.rb?All+Expressions#ranking

Ruby のヤツ意地でも通したくなるのであった

(19:36)

_ 週刊エジプト

という雑誌があるらしい

(19:57)

_ なんか

ゴルフ場が刺さってた。

うーん元気に動いてたのになぁ。

(21:32)

_ なんか

ext3fs がそれなりに壊れてた。

なんかおかしいところあるかもしれない

(21:45)

_ すげー

http://golf.shinh.org/p.rb?e#Befunge

59Bかーあと名前変えて運用で回避というのは すばらしいですありがとうございます。

(22:13)

_ 俺もオキャムってる場合じゃないなぁ

でも prime 抜かされたしなあ

(22:13)

_ そいう感覚

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070215#p03

は、なんか長い間やってるうちにできてくるような。 私の場合 Ruby は大丈夫だけど Perl は一々試してみないとダメで、 OCaml とかはもう根本的にほげほげ、って感じですね。

ゴルフの才能って要は体力とか暇じゃないかとかいう。

99 は CodeGolf の時からわかってたことですが、 案外アルゴリズム勝負で、 言語によって全然最適な方法が違うので面白かったりという。

僕は一箇所 if then else 使ってるなー。 このへんがダメになるから設計がよろしくないのは なんとなくわかってたけど書き直すのが億劫。

(22:46)

_ あと 1>0 は

http://gusmachine.blog49.fc2.com/blog-entry-138.html

私はHaskellですがここで始めて気付きますた

(22:47)

_ 僕の学んだ OCaml ゴルフのコツ

  • if then else はできればやめる。
  • 適当に型と true false のつじつまをあわせる
true&recursive(i+1)||()=print_string"hoge"

こんな感じで。

(23:15)

_ とうとう

awk & sed が Haskell を破ってしまった。

(23:20)


2007-02-14

_ 最大以外

第一フォルマントから第二フォルマントに向けて射撃とか だともうどうしようもなく難しいだろうなぁ。 声優の訓練になりそうな

(09:24)

_ うあー

irb(main):001:0> disasm("\x58\x5a\x59\x31\xdb\x31\xc0\xb0\x04\x80\x31\x20\x34\x07\x89\xc5\xcd\x80\x30\xd3\x95\x85\xed\x75\xf0")

/tmp/irb_disasm22831.0:     ファイル形式 binary

セクション .data の逆アセンブル:

0000000000000000 <.data>:
   0:   58                      pop    %eax
   1:   5a                      pop    %edx
   2:   59                      pop    %ecx
   3:   31 db                   xor    %ebx,%ebx
   5:   31 c0                   xor    %eax,%eax
   7:   b0 04                   mov    $0x4,%al
   9:   80 31 20                xorb   $0x20,(%ecx)
   c:   34 07                   xor    $0x7,%al
   e:   89 c5                   mov    %eax,%ebp
  10:   cd 80                   int    $0x80
  12:   30 d3                   xor    %dl,%bl
  14:   95                      xchg   %eax,%ebp
  15:   85 ed                   test   %ebp,%ebp
  17:   75 f0                   jne    0x9

なんかすごいコードだなーデバッガで終わんとわからん。

これだから k* は。

でもたぶん短くなりそうな

  • EAXにゴミ入る
  • EDXに1
  • ECXにスタック領域のポインタ
  • EBXをゼロ (STDIN)
  • EAXをクリア
  • EAXに4 (read)
  • ECXに ^32
  • EAXに ^7 (これで3, write)
  • EAX=>EBP
  • システムコール
  • BL^=DL (BLはSTDIN/OUTでフリップ)
  • EAXとEBP交換してからEBPの終了チェックしつつしなければループ

とりあえずレジスタの初期化部分はうちの環境に依存すれば 短くなりそうな。 つーのは EDX 最初から 1 入ってやがるみたいだから pop EAX; pop EAX とかで始めれば xor EAX, EAX は いらんような。 あと地道に pop するより popa しちゃうと レジスタが割と綺麗になるという悲惨なワザがあるとか。

zlib もそうだけどバイナリ埋め込みは 他ランキングも用意したいなー。 これはこれですごいのに、混じることによって 双方の評価が適切にしにくくなる気がする。 Python と Ruby を共通の点数評価に乗せるような感じ。

(09:50)

_ permutater

sedで解ける気がしてならない

(09:57)

_ レイプすれば客も車のうち

という諺がアメリカにある、という夢を見た。

アメリカのバスはガンガンぶつかるということを指して、 バス客もそんな感じなら車の仲間入りさ (このへん夢だけに意味がわからん) とかいう話を聞きながら、 日本ではオカマ掘るって言うよなーとか 思いながら聞いていたのであった。

(10:12)

_ nop

プレフィクスかと思い込んでたら違うのだった

#define GENERIC_NOP1    ".byte 0x90\n"
#define GENERIC_NOP2            ".byte 0x89,0xf6\n"
#define GENERIC_NOP3        ".byte 0x8d,0x76,0x00\n"
#define GENERIC_NOP4        ".byte 0x8d,0x74,0x26,0x00\n"
#define GENERIC_NOP5        GENERIC_NOP1 GENERIC_NOP4
#define GENERIC_NOP6    ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n"
#define GENERIC_NOP7    ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n"
#define GENERIC_NOP8    GENERIC_NOP1 GENERIC_NOP7

nop, mov, lea, lea, xxx, lea, lea 5B はホントに無いのかな。

(13:22)

_ statistics

実装より英語書いてるのがうざくなって途中でやる気失せた。

つまりバイナリのサイズはデフォで公開、 あとなんかシンボルゴルフとかした場合は、 名前変えてかつ statistics を公開すれば Alnum無いんだぜーとかアピールできるよ、と。

(14:41)

_ ほげー

shinh って SHINicHiro.h なんだよ!とか いうエイプリルフールネタを考えたけど 全然ネタになってないし 嘘かどうかも定かではない

(14:47)

_ OCaml

ゴルフ最弱言語の予感がたまらない

(20:30)

_ 417

< HTTP/1.1 417 Expectation Failed
< Connection: close
< Content-Length: 0
< Date: Wed, 14 Feb 2007 13:17:56 GMT
< Server: lighttpd/1.4.13

なんだこれは!

(22:18)

_ それネタバレ違う

わらた

http://www.kmonos.net/wlog/70.html#_1759070214

それはともかく、これ見て思い出したので各言語や Sample input へのリンクを追加しておきました。

あと all expression タイムアウトで通らないなーという 悲しさが私の近況

(22:48)


2007-02-13

_ perlって

uniq無いのかぁ

(00:47)

_ ううん

とりあえずハッシュに叩き込んで keys とか。

sort uniq に何byte使ってるんだという。

もちょい考えよう

(01:05)

_ dellast

http://golf.shinh.org/p.rb?delete+last+line

うーん。 sed は x の 1Byte だぜ! と思ったんだけど leading new line があるんだなー

(01:33)

_ AWK

http://jarp.does.notwork.org/diary/200702b.html#200702121

mawk と gawk はだーいぶ違うらしい。 AWK勉強したいと思ってることだし、 どうせならアグレシッブなのをってことで xgawk を入れてみようかなと思う。 x ついてるのに意味があるのかは知らないけど。

拡張子は何にしようか。 ベタベタに xgawk とかでいいんかな

(01:57)

_ ちょうし

わるい…ぐへ

(04:48)

_ あと

C って -lm つけるべきだよな

つけよう

(04:53)

_ ふむ

http://slashdot.jp/hardware/comments.pl?sid=351126&cid=1108658

このへんが一名を除いてすごくまともだ。 何事だ。

(08:45)

_ ふむ

ttp://www.fukkan.com/image/item/4091449-1.gif

このへんタイトルのところにはりたいものだよな

(09:31)

_ 妄想

まとめておく

&は敵位置 x+80*y 。ただし敵の.がこっちに直結。 ~は敵の踏んでるチップ(使えない)? ,は得点。

戦略

A. 攻める

A1. <>^v を置く

v      <  >>>>>>>>>
>      ^

端から伸ばしていってこの形で直撃すると即死

A2. pを置く

スタックアンダーフローで死んでもらう

A3. ~を置く

スタックオーバーフローで死んでもらう

A4. |を置く

スタックなり方向なりのハイブリッド。

A5. ?を置く

<>^vよりはいいかも

D. 守る

D1. 中心で

>v>v>v<v<v<v<
v>v>v>v<v<v<v
>v>>>>>>>v<v<
v>^      vv<v
>^^<<<<<<<<^<
^>^>^>^<^<^<^
>^>^>^<^<^<^<

こういう形が固いかなぁ。

D2. 敵陣で

敵陣を一部書き換えてぐるぐる

D3. 自己書き換え移動

移動式既知

I. 侵入

I1. シンプルなの

>         v

隙間に ^ とか置かれてたら死亡なのでたぶんだめ

I2. ちゃんと道作るの

>  v  >>>>>v
           v
^  <       v

ビクトリーロードを。 遅いかな。

(11:43)

_ 預金

3倍以上になってた。 赤いヤツだ。

(11:54)

_ 世界樹

そういや第四層に。

なんというか第三層はトントン拍子で進んで、 こういうバランスの取り方とかはホントうまいなぁ。

レベルは38くらいだったとおもう。 ブシドーだけ25とかそんなの。

(12:36)

_ p

  • 前半のつなぎ。stateが降ってわいてくるのはいかがなものか
  • N mode の話と他のかねあい

(15:38)

_ 作りたい言語が

また一つ増えた日なのであった

(19:48)

_ そういわず

http://www.kt.rim.or.jp/~kbk/zakkicho/07/zakkicho0702.html#D20070213-8

参加しませう ^-^-^-^-^-^-^-^-^-^-^-^-^-^

(19:56)

_ AWK

Haskellやぶって3位とかすごいな

(20:02)

_ うーん

IE7で再現しないな

(21:07)

_ むむ

http://d.hatena.ne.jp/odz/20070212/1171345311

via http://www.kt.rim.or.jp/~kbk/zakkicho/07/zakkicho0702.html#D20070213-4

たしかにこれはひどい。

  • 返り値の "int " がいらない 4B
  • cmp は長すぎる 2B
  • "const " なんて言わなくてもいじらない 6B
  • "int *" と余分な空白が入っている 2B
  • コンマの後ろにも! 1B
  • 改行とインデントがいらない 7B
  • return なんていらないグローバル変数でほげほげ
  • それ以前に文字列で機械語

とかいうどうでもいい話はどうでもよくて。

困ったな。なにがだめなんだろう。 a がマイナスおっきな数で b がプラスおっきな数の場合、 負が帰らないといけないのに オーバーフローで正になってしまう、と。

にゃるほど。 でも if 文が使いたくないという気持ちは 大変よくわかるのであるのであった。

return (a>b)-(a<b);

とかは反則負けとして、なんか無いものかなー。

隣同士の比較は諦める ('-')!

return (a-b>>2)+(a>>1)-(b>>1);

論外。

int r=((unsigned int)((a^b)&INT_MIN))>>31;
return !r*(a-b)+(a>>1)*r-(b>>1)*r;

うまくいってる気がするけどわからん。 なんにせよ * とか使った時点で負けぽい。 俺こういうのの才能ホント無いなぁ。

(21:41)

_ 面白いにゃ

http://www.nmt.ne.jp/~ysas/diary/?200702a&to=200702102#200702102

なんか前のなんとかセミナ〜で 「P!=NPはほげほげという方法では 証明できないということが証明できる」 みたいな話があって、 そのほげほげは普通の証明なら そのほげほげを満たすだろーという ものであって (よくわかってなかったけど あんまりややこしくないとかそんな)、 うあーこれじゃあ絶望的じゃーんみたいな話の後で、 人間の脳味噌で証明できない問題の クラスとかあるんじゃないかとか、 宇宙の全粒子の情報を使っても証明が書き記せない 命題はどうしようとかそんな話が出て面白かったのを思い出した。

(22:08)

_

http://yowaken.dip.jp/tdiary/20060302.html#c02

いい表現というかすごい正確

(23:33)

_ sedって子は

素数判定くらいはできる子なんですが…

i@u ~/wrk/ag> echo | sed -f prime.sed
NN
NNN
NNNNN
NNNNNNN
NNNNNNNNNNN
NNNNNNNNNNNNN
NNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

これに1分かかってちゃなぁ。 ほんとなんでこんなに遅いんだ

(23:47)

_ そういや

XENの方のulimitのしかた変えてから安定してるなー

(23:52)

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

Before...

_ LCS submitter [悩んでる人が多いみたいなので、この情報を伝える手段は何か欲しいですね。 今のLCSの問題文に上のプログラム定義をつけ..]

_ yshl [名前の欄に書いた < や > がそのまま出力されてしまうようです。エスケープ処理をお願いします。]

_ shinh [あーはい。一応対処しておきました。ぶっちゃけそのへんはものごっついいかげんというかいまいちマジメにやる気が起きなくて..]

_ bero [むむ:ちょい古いけど反応 D言語のcompareがコレで大昔に言ったけどスルーされた 今みたらさすがに直ってる・・..]

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


2007-02-12

_ ごるふ

とりあえずふっかつ。

(08:16)

_ 色々と

固定出力の Web サーバを書いた→ u3で走らせた(nohup忘れた)→ ルータの設定変えるのに手こずった→ なんか同じ設定が二つ書いてあったりとか→ 気にせずあわててでかけた→ この時nohup忘れたのでWebサーバ死去(アホ)→ 帰った→すぐおねむ→ 起きた→ ルータの設定壊れててアドレス変換修正できない→ プロバイダの設定やりなおし→ ルータの設定むずかしい

とかそんな

(08:20)

_ それなんて

http://mono.kmc.gr.jp/~yhara/d/?date=20070209#p06

FORTH

つまり逆ポーランドなら括弧いらないんじゃというか

(08:26)

_ tyba-

ltが

│1   │tybalt89│46  │0.2996│07/02/12 08:25:17 │
│2   │shinh   │51  │0.2173│07/02/12 08:16:14 │
│3   │ySas    │52  │0.1663│07/02/11 01:34:34 │

suge-

(08:30)

_ こんかいのねた

cw2d.png

こんなのだった

ちゃんとリリースしようねーという

(09:05)

_ ぎゃー

sed の無入力時に改行一個の修正の時に 無条件で改行一個にしちゃってたよ!

(09:47)

_ データサイズとしては32bit

http://slashdot.jp/hardware/comments.pl?sid=351126&cid=1108498

なぜ

(10:22)

_ pdilemma

どこからもリンクはってない気が。

cw2d も pdilemma 風にして、 リプレイなりを見れるとかそんな感じが現実的かなあ

(12:17)

_ dense coding

のことを言ってるんだろうなぁとは

(12:18)

_ Hello world

ISOとかそいうとこで標準化してくれないかな。

アリアリの H w しかダメ、とか

(12:20)

_ Data.Bits

の使い方がさっぱりわからんな。

なんだこれ

(13:19)

_ すばらしい!

http://d.shinh.org/svn/toy/lang/Readme

俺も compile time Befunge 書くよ!

ホントは compiler time x86 emulator がいいんだけど!

(21:11)

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

Before...

_ shinh [> sumimさん こちらこそ遊んでいただいてありがとうございます。過度のゴルフは古くから家庭崩壊の元となっていた..]

_ konn [あーなるほどそうすればもっと早いですね……ビット演算は奥が深そうだ。 えーとそれで、多分型宣言がないと怒られるのは..]

_ shinh [例えばこんな感じでうまくいかないから悲しいなぁという。 i@u ~/test/hs> cat bits.hs im..]

_ konn [あーなるほど。確かにそれだとどの 1 だかわからないので型宣言つけてやる必要がありますね。何かHaskellは妙に頭..]

_ shinh [なんかNumまわりだけインチキしてるから頭いいとかじゃなかったでしたっけ。まぁ復帰したら色々教えてください。]


2007-02-11

_ なんか

割とすぐに動いたな。 凝ったもの作ろうとしなければラクなもんだ

(00:12)

_ ライブドアニュース

Subject: 名門フェリス女子大でセクハラ?学長処分 ■□ドア日新聞(07/02/11号)□■

要はこういうもののようだ。

(01:45)

_ まぁ

だいたいできた。 意外なことに俺にはおもろいものがでけた。

(03:13)

_ あとは寝るか世界樹か

どっちがいいだろう

(03:16)

_ 行数

500行ちょいらしい。 GL使わなくて正解だなーと思う。

(03:17)

_ すごい

うーむ sed すごい

http://jarp.does.notwork.org/diary/200702a.html#200702102

それはそうと改行1個とかわかりにくいですし、 sed なら *NOTHING* でも改行入れる、っていう処理しようかと思います

というかもう入れた。

(03:45)

_ 世界樹記録

ねむれないので。

ゴーレムが強かったけどなんとか初見で倒した。 今レベル33-34で11,2階をうろちょろ。

ちゃんとドラクエみたいに眠らせないとなー。

(05:23)

_ しかし

バード二人のうち片方がどうしようもなくいらない。 戦闘の最初のターンに前衛で防御とかしてるカスである。

ホーリーギフトLv10になったら覚えるスキルが 無くなったので酒場に放置して新しい子を入れよう。

ブシドーに萌えキャラがいたのでこの子にしよう。 使い勝手が悪いらしいので良い良い。

カースメーカーもあやしげで良さげなんだけど。 いつ仲間になるんだろう。

(06:20)

_ メンタルモデル

エンジニアの知ってるメンタルモデルを 押しつけると大変ユーザビリティの良くないものになるので、 ユーザのメンタルモデルにあわせなさい、 として誰のためのデザインに載ってて、 例として冷蔵庫は上の温度と下の温度が設定できるのが正しくて、 冷やす総量と上下の配分を設定できるのはおかしい、と。

コンピュータでもそれは基本的にもちろん正しいんだけど、 でも敢えて技術者ベッタリで作られると 内部構造に思いを馳せる機会にはなるんだよなぁという。

というわけでやたら奥深くにある Windows の IP の設定画面は

(11:04)

_ メモ

  • trunk > tekezo さん
  • lambda > wo さん

(11:08)

_ 出るの遅れた

おもな理由はゴルフ

集合時間ゴルフ

まあつくのは35くらいかなあ

(12:24)


2007-02-10

_ 世界樹日記

飽きた。

(01:41)

_ sed sort

そういえば sed sort はループ展開された状態で 置いてあるんだけど、 ちゃんとループにすればすごい縮むと思う。 予想では100切る。

けどこれがめんだくさいんだなー。

まぁでもBFコンパイラ書くよりははるかにカンタンだろう。

(02:08)

_ できたんだけど

i@u ~/wrk/ag> cat csort.dat | sed -f csort.sed
..///:aaaaaaaaaaaaaaaaaaaabbbbbcccddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeefffffggggggggghhhhhhhhhhhhiiiiiiiiiiiiiiiijkklllllllllllmmmmmnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooppprrrrrrrrrssssssssssssssssssttttttttttttttttttttttttttttttttuuuuuuvvvvwwwwwwyyy

テスト二つ目がタイムアウトするのであった。 sed を高速化するのとかアホだなぁ。

あと

y/ !,.\/:<Habcdefghijklmnoprstuvwy/!,.\/:<Habcdefghijklmnoprstuvwy@/

とかがあるので100切るとかは全然ありえない話だった。

うーんメインループが遅いんだとは思うんだけど、 これの最適化のしかたとかさっぱりわからない。 アリゴリズム変えないといけなさそうでそれはとてもやりたくない。 うーん。

(03:10)

_ うーん

csort.sed思ったより長くなった。 メインループが高速化のせいで20-30Bくらい大きくなったみたい。

(03:57)

_ sed

/usr/share/doc/sed/examples/dc.sed を見てみよう。

#  Print a number in a non-decimal output base.  Uses registers a,b,c,d.
#  Handles fractional output bases (O<-1 or O>=1), unlike other dc's.
#  Converts the fraction correctly on negative output bases, unlike
#  UNIX dc.  Also scales the fraction more accurately than UNIX dc.
#
s,|?p,&KSa0kd[[-]Psa0la-]Sad0>a[0P]sad0=a[A*2+]saOtd0>a1-ZSd[[[[ ]P]sclb1\
!=cSbLdlbtZ[[[-]P0lb-sb]sclb0>c1+]sclb0!<c[0P1+dld>c]scdld>cscSdLbP]q]Sb\
[t[1P1-d0<c]scd0<c]ScO_1>bO1!<cO[16]<bOX0<b[[q]sc[dSbdA>c[A]sbdA=c[B]sbd\
B=c[C]sbdC=c[D]sbdD=c[E]sbdE=c[F]sb]xscLbP]~Sd[dtdZOZ+k1O/Tdsb[.5]*[.1]O\
X^*dZkdXK-1+ktsc0kdSb-[Lbdlb*lc+tdSbO*-lb0!=aldx]dsaxLbsb]sad1!>a[[.]POX\
+sb1[SbO*dtdldx-LbO*dZlb!<a]dsax]sadXd0<asbsasaLasbLbscLcsdLdsdLdLak[]pP,
b next

ううむ

(18:42)

_

入力無いから sed でチャレンジできないな。

(18:50)

_ しまった忘れてた

追加予定言語

  • APL
  • J
  • Curry
  • Erlang

とか考えてたけどすっかり忘れてたよ!

  • 2D
  • BALANCE

入出力どうすんだ

(20:51)

_ 同感

http://d.hatena.ne.jp/w_o/20070210#1171116378

明日早起きしたらできる気がしませんか。

(23:14)

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

_ konn [ぜひ Unlambda と HQ9+ も!]

_ shinh [Unlambda はまぁ入れたいところですが、アレオフィシャルな実装が Haskell で手に負えるのかなあという。..]

_  [> 明日早起き 確かに。 今は、もう寝てしまって、明日早起きすればできる気がしてます。]


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.shinh(2016-10-11 02:13) 2.sumim(2016-10-11 02:13) 3.ySas(2016-10-11 02:13)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h