トップ «前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|12|
2025|01|

ToDo:


2009-03-28

_ 出身校

http://www.shimamoto-ele04.ed.jp/syokuin_zidou_top/syokuinkousei.htm

ふと目に入ったのだけど、 人数少なくね… 1学年100人くらいはいたように思うのだけど。

(11:51)

_ エグゼリカ

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

出てるのかあ。 買ってみようかなぁと思うけどPS2もテレビも崩壊してるなあ。

(12:27)


2009-03-26

_ 微熱

えらいしんどい。スライドとか作れるかなー

(19:11)

_ 16

http://d.hatena.ne.jp/sugyan/20090326/1238007478

via http://d.hatena.ne.jp/kazuhooku/20090326/1238045916

末尾の空白がイヤなら

@s=("%02X")x16;printf"@s\n"x16,0..255;

で良いと思う。

なんかもちょい縮みそうな気はするけど Perl むつかしいな

(19:39)

_ 汝は人狼なりや

しんどくて思考ができないけど 寝れないので新都社のマンガを適当に見てみる。 面白いの見つけた。

http://puripeni.web.fc2.com/index.html

人狼としてはまぁどうだろう、 実際の名ログとかの方がはるかに面白いという感じだけど、 途中から脈絡もなく踊ったりしてるのが面白すぎる。

(23:10)


2009-03-25

_ なんか

http://longlong.way-nifty.com/blog/2009/03/700-c9db.html

もし良ければ軽く書いていただけるとありがたいかなぁと思います。

僕が最初に60倍ちょい越えの人がやってそうな工夫を 一通り紹介してみようかと思いますので、 基本的な工夫はナシですごい部分だけ書いてもらう感じでどうかな、と。

http://shinh.skr.jp/h/?HackTheCellPostMortem

↑適当にこんな話をしてもらえればいいかなーと 妄想で「何をするか」の欄を更新しておきました。 あと、現場はプロジェクタはあるそうです。

(01:42)

_ ええと…

LLVM勉強会は遅れていって yarv2llvm から。

http://d.hatena.ne.jp/miura1729/20090323/1237779835

大変面白かったんだけど、 なんか色々ヘンにつっこんでしまった気がした。 疑問をすぐ聞いてたら なんかあら探しチックになってしまった感じで申し訳なかった。

Clang はまぁ案外面白いことやってるんだなぁとか思った。 tccparser とかもそうだけど、 C コンパイラライブラリって かなり長い間欲しかった感じがするんだけど、 というかそいうのがしたくて binary 2.0 なんちゃらとかで発表したりしたんだけど、 最近あんま興味ないんだよな。

SWIG生成なんかは超実用的だと思うし、 GCCXML 使った cableswig とか実際にあるわけだけど、 こうなんか現実的になりすぎちゃってねえという無いものねだり感が。 GCC plugin branch vs GCCXML vs Clang vs Doxygen とか オルタナティブも色々ある感じだしねえ。

あと LLVM 自体も類似技術との対決は面白いかも。 LLVM vs C-- vs TCG vs ... とかね。

呑み会は他に外せないのがあったので参加できず

(02:19)

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

_ kodera [ああやっぱり、20人ともなると多少は何かあった方が良いですよね。 簡単にパワポでも用意しときます。すごい部分とか言う..]

_ shinh [ええ、結構時間も長いし、意外と話題も多そうですし、なんか資料的なのはあった方がいいかなぁと。 kik さんには頼んで..]

_ kik [プレゼン形式になってない文書はもうたくさん書いたので 新規で作るのめんどくさいんですが ホワイトボードはありますか?]

_ shinh [あ、はい、あれだけあればあの pdf で十分ではないかと思います。ホワイトボードは…まぁあるんじゃないでしょうかと思..]

_ wo [ホワイトボードはあります]


2009-03-22

_ わーぷ

普通に log(n) 回の行列計算でいけるかなーとか思ったら kik さんが書いてた上に諦めていた。

http://d.hatena.ne.jp/kikx/20090321#1237632002

でぱっと見 kodera さんのがそれ実際にやってる感じに見えるけど、 えーと違うのかな。

http://longlong.way-nifty.com/blog/2009/03/hack-the-cell-0.html

なんか違う気がした。

ああそうか、たぶん、分割数が 4 なら、

  • 0...624, 4*624...5*624, 8*624...9*624, ...
  • 624...2*624, 5*624...6*624, 9*624...10*624, ...
  • 2*624...3*624, 6*624...7*624, 10*624...11*624, ...
  • 3*624...4*624, 7*624...8*624, 11*624...12*624, ...

と担当すればいいって話か。 ただこれは mt の更新行列がそれなりに複雑になっちゃうだろうから、 log(n) べき乗ができるならそっちの方が良さそうだなぁ。

次元の3乗のオーダーを log(n) 回ってそんなに大きくないんじゃないかな… とか思ったけど、 20000次元**3 を 128 並列でできるので、 62ギガ単位の話。 積和命令とかあった気がするし 62G clock でいけるの? よーわからんけど悪くて 124G clock だろう。 8コア使うって前提の話なので、 15G clock か。 今回の mt_kadai のサンプルくらいだと現実的じゃないけど、 もっと激しく大きければ案外いけるくらい?

眠いので根本的に色々まちがっていそうだ。

(03:00)

_ あと

まあこの手のは基本的にはパズルでしかないので cell 自体の経験はあんま関係ないんじゃないかなぁ。

  • bitslice: 思いつき勝負
  • うまく命令数減らす: kikさんは天才
  • アセンブリ: __asm__ を書いたことがあるか、命令スケジューリングをある程度自動化する程度のプログラムを書けるか
  • spu-gcc とうまくつきあう: 基本的には try-and-error しか無い?

あたりがどっちかというとメインだった気がする。 even-odd の量をうまく散らすとかは重要だけど、 命令数たいして多くないから おおまかに把握するのにそんなに時間はかからないしなあ。 命令をうまく使って命令数減らすのも重要っちゃ重要だけど kik さん以外はたくさん減るのは見つけてない感じだよねたぶん。

一方 x86 とか経験がすごい生きそうだよなぁ。 herumi さんに勝てる気とか全然しない。

と書いてみて x86-64 でこいうコンテストとかも 割と面白いかもなーとか思った。 Core 2 Duo あたりで。 僕自信は勝負になる気がしないが。 誰かやらんかな。

(03:15)

_ こう

分割数が 8 として、 num_rand が 8*10**7 だとして、 800 程度進める行列を普通に(log(n)とか考えずに)作るのは たぶん 640000 回ループ回す程度のコストでできて、

  • 0...100, 800...900, 1600...1700, ...
  • 100...200, 900...1000, ...
  • 200...300, ...
  • ...
  • 700...800, ...

とかいう感じで分割すれば、 通常のループを 10**7 回と、 800 進める行列を 10**5 回かける時間で計算できるんじゃないかなぁ。 そしたら 10**7 回のループが律速な感じだから だいたい 8 倍になってる気がするなぁ、 とか思ったけど定かではない。

(03:30)

_ つか

これで8倍になるんだったら SIMD ったら shufb, selb, rotqw* あたりが消えたりするのかな。 というかそれが

http://pc11.2ch.net/test/read.cgi/tech/1232817361/581

が言っていたことか。やっとわかった。

shufb とかも減れば odd も減りそうだけど、どうなんかな。 だとすると SPU 1個でももっとフザけた倍率出たりするのかな?

(03:37)

_ メアド

http://d.hatena.ne.jp/firewood/20090322/1237659723

いいかげんな正規表現がそれなりに有効というのはとても同意… 元の正規表現で実用上一番問題なのはプラスが入ってないこと、かなぁ?

とかはいいとして、

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

の From: Anonymous <nobody@example.com> を Perl の正規表現ならできる…っていうのは 実物がもしあるんなら見てみたいな。 自分では全然知らんけど、聞きかじった知識を元に考えると大変そうで、 結構とんでもないことになってそう。

(04:27)


2009-03-21

_ うえ

http://twitter.com/pi8027/statuses/1359594979

あまりいい趣味じゃないなぁと思ってしまうので…

(12:35)

_ DSO

とりあえずやらにゃならなさそうなのは、

  • PLT を作る
  • R_X86_64_32 のハンドルがおかしいから GCC の生成したコードから DSO 作れない
  • R_X86_64_32S って何?

あたりか。

(12:51)


2009-03-20

_ 健康診断

かように明らかに不健康であるものの、 健康診断では特に不健康だとは言われないのであった。 これほんとに役に立つんかなー。

前回は身長172.7体重52.9とかで判定 Cb とかで軽度異常とかだったらしいんだけど、 今回は身長172.6体重51.5とかで平均からの逸脱は激しくなってると思うのに 判定 B とかになっていた。 何が基準だかさっぱりわからんがまぁ 体重とかで異常とかわからんということじゃないかと思う。

まあそんなことよりヘモグロビンが足りないらしい。 件の前立腺には亜鉛が良いらしいんだけど、 要は何かしら鉄っぽいものが足りてないのかなぁ。 たしかになんか会社のメシで内蔵とか出ないしな。

(00:17)

_ zsh on sakura

なんか zsh が動かんくなっていた。 libncurses がどうこうらしい。 とりあえず .cshrc をどければ普通にログインできるようだった。 ちょっとほげった感じ bash があればとりあえず良さげなので exec /usr/local/bin/bash とかでお茶を濁すことに。

(00:28)

_ hack the cell

推定4位(99-100倍の範囲に人がいたら5位)かー。 120倍付近にはいたかった感じだなぁ。 未だによくわかってないけど lqr 多すぎとかが メインの死因だったのかなぁ。 今度調べよう。

110倍台のところにいる人はどなたなんだろうか どいう違いがあったんだろうと気になるな。

学生弱いのは cell challenge のおかげで oxy さんみたいな頭おかしいのがいなかったとかありそうだなぁ。

(06:03)

_ とりあえず

わかってる範囲では

  • 126: kik
  • 120: kodera
  • 11?: ???
  • 9?: nosuke
  • 99: shinh
  • 82: herumi
  • 82: taitai

あたりで、 bit いじった人で 現段階で post mortem にもいらっしゃらなさげな方は 110倍台の人だけかなぁという。

(06:18)

_ bitonic merge sort

def bitonic_sort(a, b, e, z)
  s = (e-b)/2
  return if s == 0
  s.times{|i|
    if a[b+i+s] && ((z != 0) ^ (a[b+i] > a[b+i+s]))
      a[b+i], a[b+i+s] = a[b+i+s], a[b+i]
    end
  }
  bitonic_sort(a, b, b + s, z)
  bitonic_sort(a, b + s, e, z)
end

def bitonic_merge_sort(a)
  s = 1
  n = a.size
  while n > 1
    n /= 2
    s *= 2
    n.times{|i|
      bitonic_sort(a, s*i, s*i+s, i%2)
    }
  end
end

a = [*0...32].sort_by{rand}
p a
bitonic_merge_sort(a)
p a

こんなかんじ? 2 の倍数じゃないと動かんが。

(08:20)

_ putchar

http://q.hatena.ne.jp/1237524919

'\0' が出力されちゃうのはいかがなものかとおもう

(15:34)

_ rob's branch

http://www.mail-archive.com/tinycc-devel@nongnu.org/msg01798.html

http://landley.net/code/tinycc/

でこのバグの fix は rob's mail-list とやらにあるはずなんだけど、 その ML 自体見つからんしこまるね

まあ shared object とかの方が面白そうだしそっち見るか

(16:03)

_ DSO

とりあえず rip 相対以外グッバイすればいいのかな。

(19:44)

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

_ niha [>'\0'が〜 ボクもそう思います…]


2009-03-18

_ なんか

型とかぶる感じで出張行くことになりそうな気配があるなあ。 キャンセルして YT さんに黄金なんとかの速さで入ってもらうか

(22:31)


2009-03-17

_ 医者

そういえば

「薬三つ出しとくよ、抗生物質と痛み止めと胃薬」 「胃薬ってなんすか」 「抗生物質飲むんだから胃薬必要なのは当たり前でしょ。胃荒れちゃうから」

とかそんなかんじの会話があって、 今にして思うとこれもひどい気がした。 当たり前じゃないよ

(00:07)

_ split/join

http://b.hatena.ne.jp/entry/http://shinh.skr.jp/m/?date=20090316%23p06

個人的な感覚では、バッファ破壊してようが 一旦ポインタのリストを返しちゃうような実装だと strtol 連打より遅くなっちゃうし、 かといって callback 渡すような実装だとめんどくさいし、 それにたぶん今時のアーキテクチャじゃ分岐予測的な観点で最速じゃない。 まあ関数オブジェクトなり C++0x の lambda を渡す実装ならいいんだろうけど。

でまあというわけで split/join とかしたい時は 99% 速度なんて気にしてないという法則から、 普通に vector<string> かえす split がとりあえず あったりいいんじゃないかなぁとか思うわけです。 まあ insert_iterator を引数とする関数でも許せなくはない。 join は input iterator 二つに対して lexical_cast<string> かまして 合成していくようなのがあればいいんじゃないかな。

なんかしら、C++ の遅くなるようなものは加えれない原則は インターフェースを壊滅的に使いにくくしてると思うんだよなぁ。 他には assert(hogeMap.insert(make_pair("abc", 4)).second); とか書き飽きた。 second とか冗談じゃないというかんじ。

(00:24)

_ あと

C はどっちかというと strtol とか使いつつポインタ進めるような ループを書くことを楽しむ言語ではないかという 妄想があるため、まあそのままでもいいんじゃないかとも

(00:25)

_ 沈黙の艦隊

最近コンビニで復刊してるので地道に買って読んでいる。 足りない分は中古で補完したり別に面白くない部分は飛ばしたりしつつ。 まあ昔読んだことはあるのだけど、地味に面白いなあと思う。 まず「ぼくの考えた理想の社会」ネタは個人的に好きなんだよなぁ。 自分でもよくぼんやり考えるし。

あれこれ考えると自分的には、 「暗黙のうちに個人同士で助けあう仕組みになっていて、戦争がない」 あたりがとりあえずぼくの考えた無敵の理想社会の要素なわけだけど、 後者は目的の同意は簡単に得られるのに方法論がサッパリ見当がつかないんだよね。 そいう意味で破天荒な SF とは言えその方法論が語られるのは面白い。

あとたぶんかわぐちかいじが見開きのとこかなんかに書いていた、 「この本に出てくる人はどの立場の人もみんな自分の仕事に真摯です」 みたいなのがいいなと。 マンガって安易に悪役出しがちだけど、 実際んとこは自分が悪だとはとても思ってない者同士で あらそうケースの方が多いよねー的な

(00:37)

_ まくろ

まとめると、

#define min(a, b) ((a) < (b) ? (a) : (b))
printf("min=%d\n", min(1, min(2, -1)));

は常識で考えて展開してくれないとこまる。

int A = 1;
#define A 1+A
#define B(x) x
printf("%d\n", B(A));

は常識で考えて2回展開されちゃこまる。

さらに、マクロは外から展開していかなければならない。

これらを両立させるには、

  • 外から展開していって
  • 引数を代入する時にマクロ展開を行なう(つまりminの中のminはここで展開)
  • 引数代入の時に使ったマクロは覚えておいて
  • マクロの再帰的な発動と同様、引数代入の時に使ったマクロも発火させない

という感じでやればいいんだと思う。 TCC 的には nested_list をややこしいことにすればたぶん良い。

(22:17)

_ さて

まだややこしいな…

単に nested_list を pop しないだけだと、 第二引数以降に影響出ちゃうか。

(22:29)

_ TCC

C99 に載ってたマクロの例を喰わせてみたら 結果違ったり無限ループしたり色々ひどいなー。 これは大変めんどくさいな。

(22:43)

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

_  [assert の中に副作用のある式を入れたらまずいですよ #define NDEBUG すると消えてしまうので]

_ shinh [全くですね。社内ライブラリの CHECK のつもりでなんか assert にしてしまいました。ご指摘ありがとうござい..]


2009-03-16

_ bitfield

typedef struct {
    unsigned long long a: 1;
    unsigned long long ll: 50;
    unsigned int r;
} S;

に対して

   S s;
   s.ll = 0x123456789aULL;

がこうなる。 こう長くなっちゃうと 最適化しないコンパイラの方が読みにくいとおもう

8048459:       48 b8 9a 78 56 34 12    mov    $0x123456789a,%rax
8048460:       00 00 00
8048463:       48 c7 c1 9a 78 56 34    mov    $0x3456789a,%rcx
804846a:       48 89 ca                mov    %rcx,%rdx
804846d:       89 55 ec                mov    %edx,-0x14(%rbp)
8048470:       48 89 c2                mov    %rax,%rdx
8048473:       89 4d e8                mov    %ecx,-0x18(%rbp)
8048476:       8b 4d ec                mov    -0x14(%rbp),%ecx
8048479:       48 89 55 e0             mov    %rdx,-0x20(%rbp)
804847d:       8b 55 e8                mov    -0x18(%rbp),%edx
8048480:       48 8b 4d e0             mov    -0x20(%rbp),%rcx
8048484:       48 89 45 d8             mov    %rax,-0x28(%rbp)
8048488:       48 b8 ff ff 03 00 00    mov    $0x3ffff,%rax
804848f:       00 00 00
8048492:       48 21 c1                and    %rax,%rcx
8048495:       48 89 c8                mov    %rcx,%rax
8048498:       48 c1 e0 01             shl    $0x1,%rax
804849c:       48 8b 4d f0             mov    -0x10(%rbp),%rcx
80484a0:       48 ba 01 00 f8 ff ff    mov    $0xfffffffffff80001,%rdx
80484a7:       ff ff ff
80484aa:       48 21 d1                and    %rdx,%rcx
80484ad:       48 89 c2                mov    %rax,%rdx
80484b0:       48 89 c8                mov    %rcx,%rax
80484b3:       48 09 c2                or     %rax,%rdx
80484b6:       48 89 d0                mov    %rdx,%rax
80484b9:       48 89 45 f0             mov    %rax,-0x10(%rbp)

(00:20)

_ マジメに追わんとわからん

8048459:       48 b8 9a 78 56 34 12    mov    $0x123456789a,%rax
8048460:       00 00 00
8048463:       48 c7 c1 9a 78 56 34    mov    $0x3456789a,%rcx
804846a:       48 89 ca                mov    %rcx,%rdx
804846d:       89 55 ec                mov    %edx,-0x14(%rbp) // 32, 0x3456789a
8048470:       48 89 c2                mov    %rax,%rdx
8048473:       89 4d e8                mov    %ecx,-0x18(%rbp) // 32, 0x3456789a
8048476:       8b 4d ec                mov    -0x14(%rbp),%ecx
8048479:       48 89 55 e0             mov    %rdx,-0x20(%rbp) // 64, 0x123456789a
// uint32 edx = 0x3456789a;
804847d:       8b 55 e8                mov    -0x18(%rbp),%edx
// uint64 rcx = 0x123456789a;
8048480:       48 8b 4d e0             mov    -0x20(%rbp),%rcx
8048484:       48 89 45 d8             mov    %rax,-0x28(%rbp) // 64, 0x123456789a
8048488:       48 b8 ff ff 03 00 00    mov    $0x3ffff,%rax
804848f:       00 00 00
// uint64 rcx = 0x3ffff & 0x123456789a; // 18bit from LSB
8048492:       48 21 c1                and    %rax,%rcx
8048495:       48 89 c8                mov    %rcx,%rax
// uint64 rax = (0x3ffff & 0x123456789a) << 1;
8048498:       48 c1 e0 01             shl    $0x1,%rax
804849c:       48 8b 4d f0             mov    -0x10(%rbp),%rcx
80484a0:       48 ba 01 00 f8 ff ff    mov    $0xfffffffffff80001,%rdx
80484a7:       ff ff ff
80484aa:       48 21 d1                and    %rdx,%rcx
80484ad:       48 89 c2                mov    %rax,%rdx
80484b0:       48 89 c8                mov    %rcx,%rax
80484b3:       48 09 c2                or     %rax,%rdx
80484b6:       48 89 d0                mov    %rdx,%rax
80484b9:       48 89 45 f0             mov    %rax,-0x10(%rbp)

なるほどね。 bitmask が根本的に間違ってるよ。 OK 一見 fix できてる。 つかたぶんこれ x86 でも動くな。

(01:13)

_ いやああ

> cat bitfield_ll2.c
#include <stdio.h>

int main() {
    struct sbf2 {
        long long f1 : 3;
    } st2;
    st2.f1 = 3;
    printf("%lld\n", st2.f1);
}
> gcc bitfield_ll2.c && ./a.out
3
> gcc -m32 bitfield_ll2.c && ./a.out
-18650500345888765

GCC ってこのへんどうなの…

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7018

うーん int より小さいものに long long 使うなってか。

(02:28)

_ とりあえず

なおったことにしよう。

次は transcode.c のマクロか。 なんか思う存分回り道してるな…

他の TODO 忘れすぎだし

(02:49)

_ jaiku

http://code.google.com/p/jaikuengine/

opensource すか。

177348  642108 6749045 total

web service の OSS 化って珍しい気もするな。 OpenPNE とかあるか。

一見だからどうした感は否めないけど、 OpenPNE とかみたいにプラグインとかつくれるんなら なんかコミュニティごとに立てるとかできたりするんかいな。 ちなみに OpenPNE に本当にプラグインがあるかは知りません

(03:04)

_ 24

http://d.hatena.ne.jp/kazuhooku/20090216/1234771983

さすがに 24 はうざいかなあ… とループ書いてみたけど sscanf の方が良い気もした。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

int main() {
    int i;
    char* buf = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24";
    unsigned hits[24];
    char* p;
    for (p = buf, i = 0;; i++) {
        hits[i] = strtol(p, &p, 10);
        if (!*p) break;
        assert(*p == ',');
        p++;
    }
    assert(i == 23);

    for (i = 0; i < 24; i++) {
        assert(i+1 == hits[i]);
    }
}

要は assert がうざいのだけど、 strtok は微妙だし strtok_r も標準じゃないしなぁとかいう。 やっぱ split/join は必要なんだよなぁ。

(10:30)

_ TCC のマクロ

#include <stdio.h>
int A = 1;
#define A 1+A
#define B(x) x
int main() {
    printf("%d\n", B(A));
}

で TCC が 3 とか出力しやがってこまる。 おそらく、 B(A) => B(1+A) => 1+A => 1+1+A の順番で展開されてそうに思える。

でも K&R にある

#define cat(x, y) x ## y
cat(cat(1,2), 3)

とかいう例でちゃんとコンパイルコケるってことは 外からやってるのかなぁ。

(11:18)

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

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


2009-03-15

_ 陵辱

なんか最近頻尿とか残尿感とかそんな感じだなあとか思ってたけど そろそろなんか明らかにおかしいだろと思ったので病院へ行ってきた。

で、なんかちんこもまれるわケツに指つっこまれるわで大変なのだった。いたかった。 ケツに指つっこむのは前立腺の触診プラス精液回収が目的らしいんだけど、 あんま精液出ないな若いのにとか罵倒されてついでに言葉責めもされた。

老人にケツに指つっこまれて精液出すのが正常だなんてひどい話です。

で、なんか出ないもんだから尿道になんか少し入れられて大変いたかった。 あと運動してるかと聞かれてノーと言うと 運動しないヤツは頭でっかちで中身が無いとか そのうち鬱になるとか言われた。

その時はおもろいオッサンだなーとか思ってたけど、 冷静に考えるとひどい話だった。

でまあ前立腺炎とのこと。 悪いことにはならんけどあんま簡単には治らんとのこと。 ひどい。 運動しろ酒飲むな香辛料喰うなと踏んだりけったりである。

そろそろ自分の体のパーツで健康的な部分が無い気がする。

(22:04)

_ んなことより

TCC の bitfield && long long はそんなに難しいのかなぁ。 どうせやるなら全アーキテクチャで動くやりかたでやった方がいい気がしてきた。

(22:11)


2025年
1月
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 31
1.shinh(2014-05-24 10:42) 2.団子厨(2014-05-24 10:42) 3.shinh(2014-05-24 10:42)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h