Java三題話Socket、GC、ulimit。rotatelogsTomcatのcatalina.outをSystem.setOutで変えられるじゃんと考えてみて試してみたものの、どうもおかしい。考えてみればSystemクラスローダがロードしたSystem.outを変えられるわけではないので、あえなく撃沈。しょうがないのでrotatelogsを使うことにする。なっているので、サイズが100Mとかになったら切り替えられるといいかなぁと、そっちを設定してみた。1Mで、1Mで切り替えられるか試す。いうどでかいファイルができている。(しかも-lが効いていないけど、これはバージョンがからむのかな)なぜだろうといろいろ設定している例とかグーグルさんに訊いてみても、無いし。期待したのは、1Mを越えたあたりでfoobar-2009-08-27.001とか002とかが作られることだったのだが。やったら、ああ、そういうことかと納得したようなだまされたような。結局、rotatelogsは、与えたファイル名のテンプレートが変化可能かつ与えた条件を満たすときにローテートする。そのため、24時間相当の秒数を指定しても、最初の作成時点から24時間後ではなく、日付が変わった(%dが変化可能)ときにローテートする、と同じようにファイルサイズについても処理しているのだった。秒をファイル名に持たれても扱いやすいとは思えないので、%Y-%m-%dまでのファイル名を使って24時間切り替え運用することに決定。LLTV今日は中野でLLTV。なんか当日券もあるそうだから、寄席でも冷やかす感じで(もちろん着流しで)ふらりと中野ゼロに行くといいかも。坂の途中で売ってるラスクがおいしいし。いうか、技術書の新刊買うなら種類が集まってたり、出版者の人とか著者とか翻訳者とかがそのへんをうろうろしているわけだから、(小規模)コンピュータ系技術書見本市としての利用というのもあるんじゃないかなぁ。尚子)ネジの気持ちになって公園の中をぐるぐる回る。スクリューの気持ちになって水の中をぐるぐる回る。プロペラの気持ちになって大空に向かってぐるぐる回る。LLTV18:00以降が本命という気がしていたが、都合は都合なので、夕休みで離脱。実のところ午前中で帰っちまおうかと思ったが(というか普段からテレビを見慣れてないんだからしょうがないかなぁとか思った)、志村さん、酒井さんと一緒に昼飯食ったので、そのまま戻ってしまった。したら、クラウドのやつで取り戻して、次のプロトタイピングがどえらくおもしろかった。帰らなくて良かったと志村さんたちに感謝。土台を与えるからディスカッションのトップとして良いプレゼンだと思った。高井さんのムードメーカーっぷり(に意識的になろうとしているのか、単に地なのか、時々雪崩のように地滑りもしている)が楽しい。2年とか3年とか食わずに?」というやたらな正論を吐いて、場を凍りつかせたような。いう規模のソフトウェアを想定してないんだろうな。キャパは大規模、機能は小規模とか。iPhoneアプリなんてのはそういう感じだから。すれば参加者が、大体、クラウドといったときに、どういうソフトウェアを暗黙のうちに想定しているのかが窺えて興味深かったりした。圧倒的にプロトタイピングのやつはおもしろかった。おれは、Sourceforgeとかgithubとかに誰からも顧みられないソフトウェアが死蔵される状態こそが適正だと考えている(10000の挑戦があってこその1つの果実)。それがハードウェア(というかガジェットというか)で可能となり、どこかの倉庫群(中国あたりかなぁ)がハードウェア版Sourceforgeのストレージとなって何億何兆の(ロット100として、つまり何億ものプロジェクトがある状態)ガジェットで埋め尽くされていて、そしてそういった文化も消え去って数千年後に掘り返されて、オーパーツとしてそのころの人類の心を震わせる世界を夢想して感動した。プライベートクラウド言われるまでその発想はなかったが、言われるとコロンブスの卵だなぁと思う。歴史を振り返れば、実に正しい発想で、成功は約束されていると思う。メインフレームの商用利用、オープンシステムの企業システムへの導入、インターネットからイントラネット、と同じ筋。1企業グループに10社あり、大樹に寄りかかる中規模業者(独立系)3〜4社の面倒もみるデータセンターとかコンピュータセンターを考えれば、プライベートクラウド(というよりIaaSとかPaaSってことか)というのは必然で、AzureだけじゃなくてGAEにも当然そういうビジネスがあるんだろうな。並行プログラミングの原理から実践までアスキーの鈴木さんからもらって読み始めたが、いきなり1章の練習問題でつまづく。教科書(序文によれば大学の最終年度の教科書兼実務者の参考文献を想定している)っぽく、ぶっきらぼうに問題が出ていて解答はない。おれの本来の読者(実務者)としての正しい読み方は1章をすっとばして(アムダールの法則は別らしい)、いきなり実践編の並行スタックだとか並行キューとか、プライオリティキューとかを読めば良いのだろうが、せっかくだからまじめに(CSコースの読み方)読んでみようかなぁと。(もっとも2章の相互排他、3章の並行オブジェクトは基本的に読むべきとされている。3章ではJavaメモリモデルとしてダブルチェックロッキングがなぜ無効なのかについての解説があったりするが、わかりやすい。volatileフィールドを揮発性フィールド、シリアライザブルを線形化可能と日本語にしているので(教科書としては正しいのかも知れない)ちょっととまどった。このあたりは実務的には理解しているはずなので流し読みでも良いかなぁとか思った。普遍構造」となっている。ここでの普遍性とは、オブジェクトの数が十分であるとすれば、任意の並行オブジェクトの線形化可能な無待機実装を構築可能なことを意味している。Shavit/株式会社クイープ)価格の高さは刷り数の少なさを意味するから、2年後くらいには入手困難となりそうな書籍なので、ちょっとでも必要性を感じたら購入しておくべきと思う。つまづいている問題は以下のようなやつ。P人の囚人の1人と仮定する。看守が次のように言う。・今日は戦略を巡らし意見交換可能である。明日からは独房に入り連絡は取れない。・オンとオフのスイッチを持つ部屋がある。スイッチはどこにも接続されていない。・ときどき1人の囚人を無作為に選んで、スイッチ部屋へ入れる。囚人はオンとオフの間で切り替えることも、そのままにすることもできる。・囚人を部屋に入れる頻度は任意である。Nが任意の正数であれば、最終的に各囚人は最低でもN回スイッチ部屋に収容される。・どの囚人も常に「全員が少なくとも1回はスイッチ部屋に収容された」と主張できる。正しければ、その囚人を釈放する。正しくなければ、全員をワニの餌にする。問1)初期状態がオフの場合の必勝法を考えよ問2)初期状態が不明な場合の必勝法を考えよヒント)すべての囚人が同じことをする必要はない今写して気づいたが、「その囚人を」であって、全員ではないのか。[N=1だとP≦2じゃなければ必勝法はないよな。いうことは、必勝法の前提を考えることも問題のうちか。