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

_ 再帰判定

http://d.hatena.ne.jp/higepon/20070804/1186241590

#include <stdio.h>

int is_tail_opt() {
    return __builtin_return_address(1) != __builtin_return_address(2);
}

int fact(int x) {
    printf("%s\n", is_tail_opt() ? "tail opt" : "not opt");
    return x == 1 ? 1 : fact(x-1) * x;
}

int main() {
    printf("%d\n", fact(5));
}

超いいかげんにこんなんを考えた。

i@um ~/test> gcc -O2 tail_opt.c
i@um ~/test> ./a.out
tail opt
tail opt
tail opt
tail opt
tail opt
120
i@um ~/test> gcc tail_opt.c
i@um ~/test> ./a.out
tail opt
tail opt
not opt
not opt
not opt
120

どのへんがいいかげんかというと、全部 tail opt って出れば最適化されてて、ひとつでも not opt って出れば最適化されてない、っていうあやしげな判断を人間がしなければならないところ。

(00:54)

_ どう書く

荒らすぞ! という心意気とかそのへんを胸に秘めて帰宅したのだけど、 お題が難しすぎるよ…

JPEG を取得して色反転だなんて、 僕の好きな(荒らすのに適切な)言語ではできそうもない。

(01:01)

_ うーん

  • malloc
  • w3m
  • oprofile
  • linux binary

最近 TODO がこなせない。

(23:55)

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

_ ひげぽん [>__builtin_return_address(1) おお。知らなかった。]

_ nonovesyvet [Swimming and playing in the pool is preferably oddziajwujケ..]


2007-08-04

_ do_fork

http://hira.main.jp/wiki/pukiwiki.php?do_fork()%2Flinux2.6

とりゃーずめも

(00:33)

_ ねむい

それにしんどい。

にしても基調講演1時間とかあるのホントかよ。 俺にあと2分寄越しなYO

それはそうといつから入れるの?

(06:54)

_ ねむい

やっとゴルフプレゼンかきはじめ

(08:48)

_ まよった

山の手のろうとする

半蔵門

銀座線

やっぱ半蔵門でいいんじゃん

逆方面に10分以上乗った 余裕もちまくりで出発したはずなんだが

(10:02)


2007-08-03

_ C つーか

http://d.hatena.ne.jp/niha/20070802#1186070742

いや C もだけど、 初心者の敵度で言うと Unix のたいがいさはたいがいだろうなぁ。 pipe とか select とか。 あと sigpipe とかですか。 wait 忘れるとか。

未だになんも見ずにデーモン作れないよ。

(01:13)

_ そいや

とりあえず SIGINT ほってから しばらくして止まってなかったら諦めて SIGKILL とかどうするのとか。

いや普通にできるのかもしれんけど、 ゴルフ場でうまいこと実装できんかった気がする。

(01:16)

_ でまぁ

古いものはこうまぁ色々ほころんでるから 老害とか言うんは簡単で実際そいう側面はまぁ強いのはいいとして。

まぁよりベターなものを生む礎になれば良いのじゃー というのはあるんだろうけど、 そのわりには POSIX API をちゃんとラップするような ライブラリってあんま無いよな的な。

いやあるんだけどな。 libruby とかそういうヤツ。

(01:28)

_ でまぁ

Java puzzlers はそいう論調で Java を擁護するのだよな。 曰く、色々クソな点はたしかにあるけど、 そのクソな点が十分研究されて発見されてるのは 十分に受け入れられて吟味されているからだし、 Java は比較的クソな点が少ないからこそ受け入れられたのじゃとかなんとか。

同じ論理が C に適用された時、僕は C を許すのだけど、 Java はこう許せないのだよな。 Java ってほころびるほど古い言語じゃないじゃん。 もうちょいなんか検討しとけよ、とか。

short x = 0;
int i = 123456;
x = x + i;  // コンパイルエラー
x += i;     // 無問題

とか見てると何がしたかったの君、的な。

(01:38)

_ 体調

クソ悪いなんてもんじゃないなぁ。

(19:34)

_ 8分

うーん時間足りんな。無理だ。

(20:13)

_ とりあえず

http://d.hatena.ne.jp/soutaro/20070803/1186130441

あー別スレッドから殺すのいいですね。

現状のゴルフ場見てみた。

    `pgrep -P #{pid}`.each do |l|
       puts "kill #{l}"
       Process.kill(:KILL, l.to_i) rescue puts "already died? #{l}"
    end
    puts "kill #{pid}"
#    Process::kill(:INT, pid)
    Process::kill(:KILL, pid) rescue puts "already died? #{pid}"
    Process::wait(pid)

SIGINT の後はなんか色々試した記憶はあるけど なんかそのへんのコードは今は全く残ってないみたいだ。

(21:52)

_ あー

OCaml 本出たんだっけ。

(21:54)

_ まっくぽーつ

入れてみることに。

ビルドするのはなんかイヤなんだけどねえ。

(23:40)

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

_ niha [Unixのたいがいさも初心者(とにはさん)の敵ですね。]

_ shinh [正直 C は別にキツくない。]


2007-08-02

_ なんか

fork と thread の件はもうちょい深追いしたい気もする。

それはそうと死ぬほど寝る病はなんとかならんのか。 昨日とかたぶんそうとう寝てる。

(00:02)


2007-08-01

_ Window manager

と X がこうアプリから独立してていいことは CPU に負荷かかっててもウィンドウスイッチはできるというような。

で OSX で window switch してると 負荷かかってる時は反応が遅れて来て困る。 んで、 Quick silver から fork => Apple event 送る => Apple event に返事、 のたぶん最後の部分に時間かかってるんじゃないかなと 思ってたんだけど、 本当にそうなのか確認する価値はある、 っていうのと やっぱコアの部分は CGS 系でやれるといいのかなとか。

ああそうか、負荷がかかってるアプリへの情報問い合わせに時間かかるのか。 なら前回値記憶しておいてタイムアウトしたらそっち使うようにすればいいか。

(02:51)

_ うーんかっこいい

http://d.hatena.ne.jp/i-saint/20070801#p1

(12:14)


2007-07-30

_ スラックス見つけた

全然見つからないなぁと思ってたんだけど、 実は探してなかったから見つからないのだった。

なんかちょっと汚れてるな。

あと頭痛い。夏バテ。

(01:04)

_ ICFP の間

師匠が書いてた文章読み飛ばしてたなーと思って読んだ

http://morihyphen.hp.infoseek.co.jp/log2/200707.html#2007-07-22

ら、前ざっと見た時と同じ疑問が生まれてきたんだけど、 最後に

と思ったけど、これって最初にサイズ調べておくのとどう違うの?

書いてあった。

興味あるのは今の環境だとどっちが速いのかなぁということかな。 なんか realloc の方が速いくらいなんじゃないかとか思うけど、 なんとなく realloc がイヤなのは激しく同感で、 C++ とか realloc を隠して罪悪感を隠蔽してくれるのはすばらしい。

カプセル化ってのは罪悪感を encap なんとか (←なぜかつづれない)していると言ってよい。

#include <stdlib.h>
#include <time.h>
#include <set>
#include <vector>

using namespace std;

int main() {
    set<int> m;
    for (int i = 0; i < 10000; i++) {
        for (int j = 0; j < 100; j++) {
            m.insert(rand());
        }
    }
    vector<int> v;
    clock_t s = clock();
    for (int i = 0; i < 10; i++) {
        //copy(m.begin(), m.end(), back_inserter(v));
        v.resize(m.size());
        copy(m.begin(), m.end(), v.begin());
    }
    printf("%f\n", 1.0 * (clock()-s) / CLOCKS_PER_SEC);
}

とかだと前者 1.6 秒後者 1.3 秒か。 set::size は O(1) でできちゃうので まぁ realloc があると少しはパフォーマンスに影響するってことだろう。

えーとつまりツリー構造にはサイズを保持しとくっていう結論に。

いや個々の要素の長さが固定で 1 だからっていうような話もあるけど まぁそれも中身の長さの総量を記録しておけばいいのだけど まぁそれも pretty print とかのためにそんな情報残しておくわけがない。

にしてもまぁ 100万回もランダム生成して木構造につっこんでバランスツリー調整して、 その100万要素のツリーを10回もなめつつ1000万要素のvectorを 文句も言わず作ってくれるコンピュータさんはえらいと思う。

俺はこういう偉い人に対して 「お前のようなヤツがいるから他の子への仕事の要求が上がるんだよ!」 とか言ってるわけで、 まぁなかなかむずかしいところ。

(01:40)

_ 監修

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

よく知らんけど、 通常名前だけ、ってことは無いと思うんだけど、 どうなのかな。

(19:19)

_ やっとこさ

w3mcooksrv 修正した。 たぶん Linux と OSX では動いている。

(20:42)

_ さっきのコード

http://shinh.skr.jp/m/?date=20070730#c03

まぁめどいのでとりあえずさっきのコードを Linux on Celeron 1.7GHz で。

size を外部に持つずるいヤツが 4.37 秒で、 realloc しまくるヤツが 5.15 秒で、 最初に数えとくやつが 8.57 秒。

さっきの Core2Duo とかよりキャッシュの乗り方とか 悪かったりすると変わるかなーと思ったんだけどだいたい似たような割合やね。

さっきのはまとめると 1.3秒 1.6秒 2.6秒 。

直感的に同じメモリに対して realloc 繰り返すのは 速そう(だしなんか速いと聞いた気もする) んだけどそれにしても、直感的に差がありすぎてうさんくさい。

まぁカンばっかりなのでまた今度。

(21:57)

_ おおお

やっぱりそうなのか!

http://arena.nikkeibp.co.jp/article/column/20070607/1000581/?P=2

Windows XPと同じように、Windows Vistaも使い込むと遅くて重くなる。特に、

で、それなんでなの。というのが長年の疑問。

95系みたいに使い込むと不安定になるとかよりはマシなのかもしれないけど。

(22:02)

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

_ wo [「罪悪感をencap なんとか」、いい言葉ですね。僕も今後使っていきます。(使う場面無いですが) 「最初にサイズ調..]

_ Ozy [「通常」って書いてしまうと、きっと良くないですね…。書き直したほうがいいような気がしてきました。]

_ shinh [あ、はい先に長さだけ記録して行く、ってのはわかってたんですが、とりあえず malloc*1 と realloc*lo..]

_ wo [うえー。数えるよりreallocするほうがだいぶ速い、というのは結構意外ですね。ちゃんとベンチマークしましょう。> ..]

_ shinh [意外というより正直うさんくさいと思ったので自前の tree でもうちょい確実に比較してみた方が良さげですね。]


2007-07-29

_ 逃走か闘争か

http://blog.livedoor.jp/dankogai/archives/50881558.html

よくわからんけど、なんでその二択しかないんだよという。

だらだら闘争しつつだらだらしたいんだけど。 あとだらだらしたい。

あとオリジナルの jkondo さんのよりはるかに dankogai さんの方が気にいらないのはたぶん、 jkondo さんのは仕事好きなら好きにすりゃいいじゃんと思ったけど dankogai さんのは若者よ働けチックだったからかな。

(14:14)

_ きゃー二度寝!

この時間に起きた僕の明日の人生はいかに

(19:49)

_ あと

何度か書いてる気もするけど、 仕事好きなら好きにすりゃいいじゃん てのも雇用側なら好きにすればいいんだけど、 働く側に極端にマジメに働く子がいると あいつが頑張ってるんだからお前も頑張れ的な 暗黙の強制が生まれてよろしくないという話が。

勝手に頑張って勝手にたくさん稼ぐだけなら無問題なんだけど、 他の子の時給落としちゃうのよね、 という。

この話か。

http://d.hatena.ne.jp/sumii/20060731/1154301189

(23:28)

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

_ niha [つまり仕事の話は嫌いということでいいでしょうか。ボクはそれでいいです。]

_ あろは [全然関係無いけど,僕のブログのエントリ番号 ↓ ヤマナシオチナシイミナシ (801) ですね. shinh さ..]

_ shinh [僕はだらだらしてたら物理落ちこぼれちゃったわけですが。 プログラムの方は趣味が仕事になっちゃって、趣味は別にだ..]


2007-07-28

_ みんな買うよね!!

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

(12:43)

_ An Emacs language mode creating tutorial

http://two-wugs.net/emacs/mode-tutorial.html

hmhm

(23:57)


2007-07-27

_ Erlang が気に入らない3つの理由

http://www.rubyist.net/~matz/20070713.html#p01

それ3つとも「Prologぽいから」じゃないのだろうかと思った。

(01:59)


2007-07-26

_ strong_compress

 x += 'IIPIP' + asnat(l) + 'IIFIIF' + 'IFPP' + protect(c) + 'IFPPIIF' + 'C' * (i-2)

とかでいいだろアホー、と思った。

おそろしいことに protect が実装できない、というか 試しにやってみても 6000B くらいしか縮まん。 まぁそんなもんか && そんだけ縮んだら十分か

(01:31)


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(2014-05-24 02:17) 2.shinh(2014-05-24 02:17) 3.紫月飴(2014-05-24 02:17)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h