トップ «前の日記(2006-09-13) 最新 次の日記(2006-09-15)» 編集

はじめてのにき

ここの位置付け

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|

ToDo:


2006-09-14

_ shinh.dyndns.org

ふっかつ

何をもって復活と言うのかは忘れたけど、 SVNは動いてるくさい。

(00:12)

_ x86_64

shinh@cf-amd64-linux:~> cat hoge.c
#include <stdio.h>
void hoge() { puts("hoge"); }
shinh@cf-amd64-linux:~> gcc -shared -o hoge.so hoge.c
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld: /tmp/ccaYZHDk.o: relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/tmp/ccaYZHDk.o: could not read symbols: Bad value
collect2: ld returned 1 exit status

そういうもんなんか…

(00:47)

_ よーわからんが

http://shinh.skr.jp/m/?date=200503

あたりが表示できんくなってたのでパッチ。

defaultio.rb の

                                               diary = eval( "TDiary::WikiDiary::new( headers['Date'], headers['Title'], body, Time::at( headers['Last-Modified'].to_i ) )" )
                                               #diary = eval( "#{style( style_name )}::new( headers['Date'], headers['Title'], body, Time::at( headers['Last-Modified'].to_i ) )" )

よーわからんが動く。

(01:28)

_ あー

x86_64 が PIC だらけになるのはわかるけど、 OSX もかー…

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

(01:30)

_ すごい面白かった

> ここらへん

さてなんか2つにわけた理由というのは 今はもう正確に思い出せないけど今現在の理由としては

  • はてな重い
  • はてな重い
  • SNRを分けると書きやすい

まぁみっつめ以外はどうでもいいとして。 どうでもいい僕の日常とか見たい特殊な人は こっち見てもいいよ でも基本的に技術的に面白いことあったら はてなの方に書くよ的な。

どうでもいいけどはてなアカウント二つ操作するのは とてもめんどくさそう。

まぁこういうメモをポンポン置けるのは便利

(04:13)

_ でも最近

500出て弾かれるんだよな。

500出た場合は再送するように メールフィルタの方でやっておくかなぁ…

(04:14)

_ おお

本当に あたらしいのが ある

http://packages.debian.org/unstable/libdevel/libestraier-dev

(04:18)

_ 斜陽

に反対する人がいるのかー

http://d.hatena.ne.jp/yaneurao/20060913#c1158168608

(04:20)

_ いい加減マジメに追ってみるといい

僕はインストラクションセットとか見てても何もわからん。

shinh@cf-amd64-linux:~> cat hoge.c int main() {

 puts("hoge");
 puts("hoge");

}

以下略。

なんだ普通じゃん。つーことはコードのバグだ。 オケオケ。

jmpq *12345678(%rip)

みたいな命令は、 12345678 は単なる 32bit の物体で、 実行前にリロケーションされるんだけど、 その先に 64bit のアドレスがえーと

0x500820 <_GLOBAL_OFFSET_TABLE_+16>:    0x955610e0      0x0000002a

まぁこんな感じで置いてあるので、 0x0000002a955610e0 に飛ぶ… って普通に間接ジャンプしてるだけじゃん。

(04:50)

_ 勝手に決めてるよ!

> 9.17

(04:52)

_ スタックを喰いつぶせー☆

int main(int argc, char *argv[], char *envp[]) {
    int i;
    char buf[4096];
    void *fp = fopen("/proc/self/maps", "r");
    while (fgets(buf, 4095, fp))
        printf("%s", buf);
    for (i = 0; i < 10000; i++) {
        printf("%d %p %p\n", i, argv[i], &argv[i]);
    }
}

なんか毎回全然違うな。 またなんかセキュリティ関係でありがたい^H^H^H^H^H余計なことされてるんだろうか

普通と逆の表現のしかたをしてみた

まぁわかることはえらい広いということだなぁ。

(05:10)

_ 810

(15:41)

_

驚くほど無くなってた。

15万とかそのくらい。

先月の給与無いこと考えるとまぁしばらくはもつが。

TODO: 節約

(18:07)

_ OCaml

関数内で、ループのために let rec な関数を もう一個書くことがよくあるけど、 これにつける名前で悩む。 元の関数と同じ名前が一番自然だったりしてね。

k.inabaさんが Python でやってた _ はいいなと思ったけど OCaml にはおこられた。

  • hoge: 長い
  • x: 変数とかぶりそう
  • 関数と同じ名前: 混乱しそう、長い
  • 関数と同じ名前に _ をつける: 長い

むー?

http://ocaml.jp/archive/document/intro1.html

iter ねぇ…

むー。

__ はいいらしい。 むしろなんで _ があかんねん。

# let _ x = x;;
Syntax error
# let _ = 1;;
- : int = 1

http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4-05w/mltext/ocaml003.html#toc6

ここの変数の名前にだめと書いてあるなぁ。

_' とか…

(18:45)

_ むしろ

lazy でバグ出す関数書くの難しいような。

そりゃ故意にやればできるだろうけどね…

(21:24)

_ 何故か鍵が見つからなくて

2000円奪還失敗… ついでに5000円寮費無駄に払ったくさい。

なんでやねん。

(21:25)

_ まぁ

ロクでもないことばかりだけど気分が悪くないのは 好きな季節だからだろう

(21:26)

_ あれ

OCaml のコンストラクタって関数として扱えないのかしらん。

# type t = A of int | B of int;;
type t = A of int | B of int
# let x = A;;
The constructor A expects 1 argument(s), but is here applied to 0 argument(s)

(22:17)

_ variant の比較

# type t = A of int | B of int;;
type t = A of int | B of int
# a = A 1;;
Unbound value a
# let a = A 1;;
val a : t = A 1
# let b = A 1;;
val b : t = A 1
# a == b;;
- : bool = false

そうなのね… んーと。

(22:55)

_ ファッキュー

http://www.i.kyushu-u.ac.jp/~bannai/ocaml-intro/traps.html#equality

だった。 つーか忘れすぎ。

(22:56)

_ さいき

let x =
  let rec x' v =

とかが良さそうだわー

(23:36)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2006年
9月
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:43) 2.k.inaba(2014-05-24 02:43) 3.YT(2014-05-24 02:43)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h