NAKAMURA Minoru の日記 (2005年3月)

先月の日記(2005年02月) 今月の日記(2005年03月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | slideshare | github | Qiita



3/31 (木)

年度末

今日で本年度は終わり。 一日、報告書を書いて過ごす。

明日からは個人情報保護法が施行される関係で、 いろいろセキュリティシステムが変ったりする。 機密情報の扱いも変更になるので、 誓約書を書かされたりと難儀なり。


3/30 (水)

[CPU] VT 対抗の AMD の仮想化技術 Pacifica (公式The Register)

Intel の Vanderpool Technology あらため Virtualization Technology (VT) に対抗する AMD の仮想化技術 Pacifica が披露されたようだ。 技術的な細部は不明。


3/29 (火)

[Java] Java のバイトコード操作ライブラリ

暫く前からコーディングしていた Java のバイトコード操作ライブラリが、 ようやくまともに動作するようになった。 今のところ Linux と Windows で動作中。

入力クラスファイル → (解析) → 中間言語 → (再構成) → 出力クラスファイルという単純な疎通テストすら通らず、 入力と出力に不一致が起きていた。 再構成パートに あっちの要素では 1 バイト余分に あちらの要素では 1 バイト不足というふうにバグがあったのが原因。

少しデバッグを重ねたら、 J2SE 5.0 の JVMTI の ClassFileLoadHook とのリンク作業を行う。

[時事] スマトラで再び地震が発生

昨年の 12/26 と同程度のM8.7 という規模。 当分、余震が予測される。


3/28 (月)

[Work] 就職活動のシーズン

最近は、さ来年度の就職希望の学生君が頻繁に企業見学に来ているようで、 サポートスタッフとして徴収される。 懇親会形式で2時間ほど学生の質問を受けることになる。

昨年度は赤字を出していたので、 学生くんの顔にも「ここに入社して大丈夫?」という雰囲気が漂っていたが、 今年はなんとなく顔が明るいような気がする。

[Java] Multi-Tasking Virtual Machine (ITmedia)

ITmedia に SUN の Multi-Tasking Virtual Machine (MVM) の紹介が出ている。
MVM は、 1台のホストマシン上で、論理的に複数の Java VM を動かす必要のある環境で、 Java VM 間でリソースを共有しあうことでリソースの消費を抑えようとするシステム。

本来 Java VM 上は 1 台のホストマシン上に 1 つ動いていれば、 スレッドとクラスローダーを分けることによって複数のタスクを同時に処理することができる。 ただ GC によるレスポンスの低下や Java VM 自身の脆弱性のために、 1台のマシンに複数の Java VM を立ち上げざるえない状況だ。 MVM のコード品質が上がらないと、いつか MVM の MVM が必要になりそうな予感がする。。。

コメントを書き込む
[しゅ] 2005-03-29 13:23:13
なんで今のタイミングでITmediaに記事が出るのか、不思議です。
3/22に、java.sun.comにMVMの文章が載ったから、でしょうか。

3/25 (金)

[C++][Prog] C++ 言語のカスタム new 演算子

C++ 言語は new 演算子を再定義することによって メモリアロケーション方法を変更することが可能なのだが、 その際 引数付きの new 演算子を定義できる。

// 引数付きの new 演算子
void* operator new (size_t size, char word);
void* operator new (size_t size, int i1, int i2);

// 引数付きの new 演算子の使い方
T* t1 = new (0xFF) T();
T* t2 = new (2, 3) T();

new 演算子と型名の真中にある括弧がミソで、 ここに引数を記述する。

void* p を引数にとることによって、 明示的に割り付けメモリ位置を指定することもできる。

// 引数に与えられたメモリ位置にアロケーションする new 演算子
void* operator new (size_t size, void* p) { return p; }

// スタック上に動的にオブジェクトを割り付ける
T* t = new (alloc(sizeof(T))) T();

// マクロ
#define stack_allocated_new(T)  new (alloca(sizeof(T))) T

実際には特殊すぎる new 演算子をグローバルに放置するのは良くないので、 特定のクラスでのみ有効なようにメンバ演算子とする。 下の例の場合 Object クラスとその派生型でだけ void* operator new (size_t size, void* p) は有効。

// 特殊な new 演算子を使うために基底クラスを設ける。
class Object {
  public:
    void* operator new (size_t size);
    void* operator new (size_t size, void* p);
};

これはリージョンベースなメモリ管理を導入する場合などに応用できる。

// Region 
class Region {
friend class RegionAllocatedObject;
protected:
  void* allocate(size_t size);
};


// Region-based なメモリ管理を行いたい場合の基底クラス
class RegionAllocatedObject {
private:
  // 引数なしの new を禁止してしまう。
  void* operator new(size_t size);

public:
  void* operator new(size_t size, Region* region) {
    return region->allocate(size);
  }
};

上の枠組みを使ってプログラムすると、下のような感じになる。 すでに標準の C++ の記述方法とは、かけ離れたものになるが (^_^;

Region region1();

T1* t1 = new (&region1) T1();

{
  Region region2();
    
  T2* t2 = new (&region1) T2();
  T3* t3 = new (&region2) T3();
}

3/24 (木)

[Work] 沼津工場に出張

プロジェクト「泥沼」に関して、痛い話を聞く。

[Work] インターン生の送別会

プロジェクト「泥沼」に関する話を聞いてさらに萎える。


3/23 (水)

[Java] Java のクラスファイル解析器の実装

Java のクラスファイルパーサーを書いているが、 Attribute の仕様に関して疑問点があるのでメモしておく。

Java クラスファイルの Attribute は可変サイズで、 2番目の attribute_length によってサイズが決まる。

attribute_info {
  u2 attribute_name_index;
  u4 attribute_length;
  u1 info[attribute_length];
}

入れ子構造の info がどのように使用されるかは Attribute の種類によって変わる。 その中で info のサイズを示唆するパラメーターが、 info 自身の中に含まれているタイプの Attribute がある。 例えば InnerClasses 属性の場合、 内部データのサイズは attribute_length のほか、 sizeof(InnerClasses_element) * number_of_classes + 2 でも求まる。

InnerClasses_element {
  u2 inner_class_info_index;	     
  u2 outer_class_info_index;	     
  u2 inner_name_index;	     
  u2 inner_class_access_flags;	     
}

InnerClasses_attribute {
  u2 attribute_name_index;
  u4 attribute_length;
  u2 number_of_classes;
  InnerClasses_element  classes[number_of_classes];
  // padding?
}

問題は2つのサイズが一致することがクラスファイルの仕様として求められているのかどうかという点。 つまり classes の後に任意のパディングを挿入することは許されているのだろうか? 仕様としてパディングが許されているとすると、いろいろ厄介な問題が起きそうだが。。。

追記:3/25

J2SE 5.0 の Annotation に関係する Attribute のパース & 抽象データ化に取り掛かる。 AnnotationAttribute の内部構造のためにヘルパークラス & コンテナクラスを 山ほど作らなくてはいけなくて鬱。

なんでこんなに苦労するのか考えると、 C++ を使っているにも関わらず 例外と RTTI と STL を禁じ手にしているから。 前の二つを使うとこのライブラリを連結したいプログラムとの相性が悪くなるし、 STL を使うとコードが肥大化してしまう(自前のテンプレートクラスを書いて凌いでいる)。 Java でコーディングすると楽なんだろうな。。。

コメントを書き込む
[しゅ] 2005-03-25 02:24:26
VM Spec 2nd Ed.の 4.7.5 The InnerClasses Attribute によると、
「u4 attribute_length」の説明として「the length of the attribute, excluding the initial six bytes.」とあるから、
paddingは許容されていないと理解してます。
[nminoru] 2005-03-26 02:04:03
クラスファイルを加工して ExceptionsAttribute の後ろに 1 バイト/4バイトの padding を付けて実験して見ましたが、Sun J2SE 1.4.2 では verifier に弾かれてしまいました。OUCH!

3/22 (火)

本家 SSH

同僚が人外の地に研修に出されて、環境構築に困っているようだ。 机の上には限りなく素に近い SPARC/Solaris マシンしかなく、 自分のマシンにログインできないそうな。 こちらは有線電話と ftp しか使えないので オリジナル SSH を一式ダウンロードして ftp サーバーにあげてくれと、 泣きつかれた。

仕方がないのでソースファイルを探すがなかなか見つからない。 かつては名の通った ftp サーバーならたいがい置いてあったような気がするが、 今は行方不明に。 ようやく 本家 SSH のホームページftp サーバー を発見。

良く考えてみると本家 SSH は OpenSSH に駆逐され、軒を貸して母屋をとられた状態なのね。 商用 UNIX も OpenSSH を使うところが多いしね。 南無三。

Amazon.co.jp アソシエイト・セントラルの模様替え

Amazon.co.jp アソシエイト・セントラル のページが随分様変わりしている。 アフェリエイトのレポートが見やすく整理されたり、機能の追加がはかられたようだ。 ただ以前の版にあった「個別商品毎のクリック数」のレポート機能がなくなった。 Web に載せた商品のうちどれがクリック数が多いかとかが分かったのに、 今は一日のクリック総数しか見えなくなってしまった。 さて、どうしたものか?

mixi

本店さんに誘われて mixi に参加す。 勝手が良く分からない世界のため、 自分の ID が何番なのか なかなか分からずに悩む。 結局、mixi のページからこのサイトに飛んだ referer を見て解決。


3/21 (月)

ウィルススキャンが止まらない

職場のセキュリティーポリシーが変更になり、 ウィルススキャンの間隔が一日一回のノルマから一週間に一度に変わった (スキャンソフトは Norton AntiVirus)。 一日一回のスキャンの時には Mail/ など特定ディレクトだけをスキャンしていたが、 週一になったので日曜日の深夜に samba 経由の UNIX 上のファイルを含めて全ファイルをスキャンするように設定を変更してみたのが先週のこと。

しかし週一週間 Norton AntiVirus は動き続け、 今日 会社に出てみると先週から起動している AntiVirus と昨日起動した AntiVirus の二つがウィンドウが開いているやんけ。 30GB ちょいのファイルなのに、このままだと三週間近くかかりそう。

鬱陶しいので強制停止。


3/18 (金)

[Food] かに道楽@川崎

スイスからのインターン生の人もそろそろ帰国するので、 日本で食べ残している料理を食べるようということになる。 お題は「蟹」。 川崎の かに道楽 に同僚 4 人で出かける。 ちなみに、私が前回 かに道楽に行ったのは 2002 12/14 だった。

かに道楽:看板
かに道楽
かに道楽:箸置き
箸置き
かに道楽:ホジホジ
ちなみにカニの身をほじくる木べらはホジホ ジというようだ

カニすきを中心としたセットに、 カニ天麩羅を追加して注文する。

かに道楽:前菜
前菜
かに道楽:ゆでたカニ足
ゆでたカニ足
かに道楽:刺し身
刺し身
かに道楽:天麩羅
天麩羅
かに道楽:天麩羅
天麩羅
かに道楽:かにすき
かにすき
右側に見えるのはカボチャを練りこんだそば
かに道楽:豆腐
カニの形をしている
かに道楽:雑炊
雑炊
かに道楽:
かに道楽:
かに道楽:

久々にカニを楽しんだのですが、 中でもカニ天麩羅とすき焼きの残り汁で作った雑炊は絶品でありました。

P.S.

食後に 川崎チネチッタ のパチモン イタリア風の街並みを鑑賞 (2004 1/31)。 パチモンっぽさがインターン生にも大受けです。


3/17 (木)

[Linux] Linux 2.6 系カーネルの procfs の問題

Linux はもともとメモリ空間を共有するプロセスを使ってマルチスレッドを実現していたが、 Linux 2.6 系カーネルは NPTL によりカーネルレベルでスレッドを識別して制御できるようになった。 それは基本的には良いことなのだが、いろいろ過度期の混乱が生じている。 その一つに top コマンドの %CPU の表示がまともに動かないという問題がある。

古いスタイルのマルチスレッドではスレッド = プロセスなので、 procfs 下のスレッド数分の /proc/<pid>/ が並ぶ。 概念としての「プロセス」の CPU 占有率は、すべてのスレッド = プロセスの合計を計算して求める。

一方、 2.6 系カーネルはスレッドはプロセスの下にまとめられ、 スレッド情報は /proc/<pid>/task/<pid>/ の下に集められる。 ただ /proc/<pid>/stat は、 すべてのスレッドを合計したプロセス情報ではなく、 メインスレッドと同じ情報を返している。

プロセス毎の CPU 使用率を表示する top コマンドは、 /proc/<pid>/stat を読んで処理している。 そのためマルチスレッドプロセスの CPU 使用率はメインスレッド分だけが表示され、 実際には過小な値になるもよう。
さて、どうしたものか。。。


3/15 (火)

[Work] 青田買い

久々に東大 浅野キャンパスの坂井研にリクルートへ行く。 坂井研はかつては30人超の大所帯だったが、めっきり人が減っている。 今では博士課程は一人だけ。 研究内容も随分と変わっている。

今年の M2 は二人。 すでに綱引きがはじまっているようだが、二人とも S が第一希望だそうだ。 理由を聞くとコンシューマー系のプロダクツに関係する開発がやりたいとのこと。 うちはその方面が凄い弱いから、アピール不足だよね。。。

[Food] 信濃屋@根津 (livedoor)

(会社の金で) M2 の人と飯を食べに行く。 お店は根津の信濃屋。 久しぶりに馬カツを食する。

信濃屋:看板
信濃屋
信濃屋:上ロース
上ロース
信濃屋:馬かつ
馬かつ
信濃屋:馬かつの断面
馬かつの断面
コメントを書き込む
[本店] 2005-03-18 20:58:06
Sってまだ人気あるんですか、、、クタタンの威力はすごいなー。
私も新歓の時に顔出しに行こうかしら。

3/13 (日)

疲労のため一日寝て過ごす

疲労のため一日寝て過ごすが、 その間 親元から何度も電話が掛かって来たようだ。
上着のポケットに携帯電話を突っ込んでいたのが災いして気づかず。 17時ごろに気づいて電話に出ると、 何か事故があったのか心配されてしまった。


3/11 (金)

[Java] Java Computing 2005 Spring 二日目

Java Computing 2005 Spring の二日目。
どんよりと曇り空の中 出かけたら、会場に辿り着いた時は雨になっていた。
午後からのセッションを4つ聞く。

(A-5) Sun の J2ME のセッション、(A-6) Sun の J2SE 5.0 のセッション

SUN の J2ME (主に MIDP) と J2SE 5.0 のセッションを連続して聞く。
どちらも概要の簡単な説明なので基本的には既知。

(E-7) CTC の Segmented JVM のセッション

タイトルの Segmented JVM は、 フロントエンドとバックエンド(エンジン部) に分かれて実行できる JVM のこと(のようだ)。 つまり来月から売り出されることになる ***** (まだ会社名を伏せる必要があるみたい。Cliff Click が移籍したとこ) の Network Attached Processor (NAP) のこと。

CTC は 100 CPU ぐらいの NAP を手に入れて評価中とのこと。 NAP の詳細はほとんど不明だが、 フロントエンド側は SUN から買ってきた Hotspot VM を利用しているとのこと。 Java VM の互換性には問題がないそうだが、 性能的ではフロントエンドとバックエンドで通信が発生する JNI がボトルネックになるようだ。

プレゼン後に講師の人に話を聞いたが、 単体 CPU のパワーは現行の Intel チップに比べると「かなり遅い」とのこと。 値段は 100 CPU で 1,000 〜 2,000 万くらいになるかもとのこと。

正直な感想
技術的には面白いけど売れないだろうなぁ〜。

(E-8) IT Frontier の Wily Introscope のセッション

J2EE システム運用監視系ソフト Introscope のセッション。
Introscope は bytecode instrumentation で既存のクラスに監視コードを挟み込み、 J2EE システムのモニタリングを行うソフト。

Introscope は 本番系での常時モニタリングが前提。 以下のような点が売り。

  • 実行中の負荷は 5% 〜 10% ぐらいだそうだ。
  • モニター情報をかなり長い時間スパンで可能。 「1年分のデータを全部取っても20GBぐらいに収まる」とのこと。
    デモでは過去の時刻のデータを再表示させてみせるが、「おお!」と感心した。
  • ロールモデル(マネージャーレベル、データベース管理者、開発者) によって 表示方法の粒度を変更可能。
    マネージャーから見たビューは、コンポーネントが赤・青・緑の信号機表示される。 問題がある箇所をクリックすると担当への連絡先が表示される (^_^;

銀行系や通信系なので採用実績がいろいろあるそうだ。

昨日と今日もらったノベルティグッズ

会場で貰ったノベルティグッズなど。

Ja-Jakarta Project の何?
Ja-Jakarta Project のワッペン?
クリスタルデューク
クリスタルデューク
(ガラス製のデューク人形)

他にもペーパーボックスとか貰うなり。

[Food] Devi Fusion (公式Yahoo!グルメ)

会場で会社の人とばったり会ったので、六本木で夕食を一緒に食べることに。
S.J. 氏がお薦めの店のインド料理の店に行く。

IndianRestaurant & BarDeviFusion:アルゴビ
アルゴビ
IndianRestaurant & BarDeviFusion:チキンカレー
チキンカレー
ほどほどに辛い
IndianRestaurant & BarDeviFusion:ナン
ナン
凄い大きい

味は大変にうまぁ〜です。
最近食べたラージ・マハールより美味しいかも。

コメントを書き込む
[sj] 2005-03-14 00:01:17
行きましたね!うまーでしょ?たまには僕の食べ歩きページも見てくださいね。近いうち食べ歩きませう。
[nminoru] 2005-03-15 02:29:37
S.J.さんお久しぶりです。
S.J.さんのページはアンテナ経由でいつも見ていますよ (^_^;

> 近いうち食べ歩きませう。
そうしませう。

3/10 (木)

[Java] Java Computing 2005 Spring 一日目

六本木ヒルズで開かれた Java Computing 2005 Spring へ。

午後からノコノコ出て行ったので基調演説は聞けず。 午後からのセッションを聞く。

(D-1) 富士通の基幹帳票開発
「短期間、高品質で実現するオープン基幹帳票開発」というタイトルだが Java とほとんど関係ない話だった。。。
# 富士通は JC2005 のプラチナスポンサーだから4セッション分のトラックがあるけど 枠をもてあましている気がする。。。

(B-2) Oracle の EJB 3.0 のセッション
EJB 3.0 の解説。 EJB 3.0 の RI は Oracle が提供しているようで、 Oracle も力を入れているようだ。
EJB 3.0 のコードの記述方法が大幅に変わり、 J2SE 5.0 の Annotation の導入したことで 書くコード量が大幅に減っている。
だけど J2SE 1.4 以前では annotation は使えないので代替記述になり、 EJB 3.0 は実質的には J2SE 5.0 専用という気がする。 J2SE 5.0 の JVM が枯れていない状態で、 EJB 3.0 に移る人はいるのかしらん?

(A-3) Sun の NetBeans のセッション
Sun が押しているオープンソースの Java の統合開発環境の紹介。 Eclipse と異なる点は、
  • インストール後の設定がほとんど不要。
  • Servlet/EJB コンテナとの連携がよい。
  • Swing 使うなら NetBeans
とのこと。

(B-3) Oracle の JavaServer Faces のセッション
J2EE の標準規格である JSF の紹介と Oracle JDeveloper 10g を使ったデモ。
JSF は Servlet の上に乗っかるフレームワークの一種で、 Web アプリケーションを VB のようなイベントドリブンのスタイルでプログラムできる。 Apple の WebObjects みたいなやつですね。
Oracle の JDeveloper 10g には ADF Faces と呼ばれる JSF コンポーネント集が付いてくる。 カレンダーやツリービューのような高機能なコンポーネントも用意されているみたい。

2カゴのエレベーター

会場は森ビルの40F。 直通のエレベーターは大量輸送のためカゴが上下2段になっていた!! こんなエレベーターには初めて乗ったよ。


3/9 (水)

体調を崩して午前中はダウン

風邪引いてダウン。

[Windows] MSDN Professional のサブスクリプション

午後から会社に出ると MSDN の Professional のサブスクリプション登録書が来ている。 MSDN Subscriber Download には Microsoft Passport のアカウントが必要のようで 好みではないが作成を行う。

ダウンロードサイトからは MSDN、Library、開発ツール、OS がダウンロードできるほか、 MS-DOS まであるのは笑った (^_^;

とりあえず Itanium と AMD64 の Windows 2003 Server をダウンロード中。


3/6 (日)

談話室 滝沢

2/13 に 書いたように今月末で「談話室 滝沢」が閉店になるので、 記念に新宿店を表敬訪問する。

[Food] 王ろじ (Yahoo!グルメ)

「滝沢」へ行く前に一人で昼飯を食べる。 標的は「王ろじ」。 日本で初めて「とんかつ」という名前つけたトンカツ屋で、 カツカレー「とん丼」を食べる。

とんかつ屋のカツカレーだけあって、カツは絶品。 ただルーは小麦粉を大量に入れた和風ソースなので、 もう少し辛味があったほうがカツに合うと思われる。

王ろじ:店の前
店の前
王ろじ:とん丼
とん丼

[Food] 新宿中村屋 (公式Yahoo!グルメぐるなび)

デザートに中村屋の一階のパーラーであんみつを食す。 後で「カレーパン」も食す。

新宿中村屋:抹茶白玉あんみつ
抹茶白玉あんみつ

ジュンク堂新宿店 (公式)

待ち合わせの時間まで 最近オープンした ジュンク堂の新宿店で時間を潰す。 紀伊国屋の向かいの三越新宿店の7・8階がジュンク堂となっている。 文芸書や理系の専門書の品揃えは紀伊国屋よりいいし 椅子があって座れるのでナイス。

[Food] 談話室 滝沢

takita さん、辻夫妻、三浦少年、峯氏と合流。 店内に入る。

滝沢はえらい混雑でこれだけ込むなら、 閉店する必要ないんじゃないかと思うほど。

飲み食いして談笑。
その他、いろいろやばい話も聞く。

滝沢:抹茶ケーキ
抹茶ケーキ
滝沢:チーズケーキ
チーズケーキ
滝沢:チョコレートケーキ
チョコレートケーキ
滝沢:日本茶
日本茶
滝沢:ヨーグルト
ヨーグルト
滝沢:サンドイッチ
サンドイッチ
滝沢:クロックムッシュ
クロックムッシュ

ちなみに飲み物はどれでも 1,000 円、 飲み物 + ケーキのセット は 1,100 円という驚きの価格設定です。

[Food] LA VERDE (公式Yahoo!グルメ)

夕食に「肉」を食いに行くことになり、 叙々苑等の焼肉屋を巡るがどこもいっぱい。 結局、方向転換しパスタ屋 LA VERDE に。

LA VERDE:ニョッキのゴルゴンゾーラチーズかけ
ニョッキのゴルゴンゾーラチーズかけ
LA VERDE:フンギのピッツァ
フンギのピッツァ
LA VERDE:カプリチョーザ
カプリチョーザ
LA VERDE:ホウレン草とベーコン
ホウレン草とベーコン
LA VERDE:ボンゴレ・ビアンコ
ボンゴレ・ビアンコ
LA VERDE:ミートソース?
ミートソース?

今日見つけた変なもの

新宿を巡回している宣伝車のようだが Linux が強烈にパチモン臭く見えてくるから不思議だ。。。

リナックスがやってくる
リナックスがやってくる

追記:3/13

写真の人は 福下恵美 というようだ。

コメントを書き込む
[しゅどう] 2005-03-12 01:28:11
もはやLinuxのイメージダウン戦略にしか見えない。
[nminoru] 2005-03-15 01:50:05
ホリエモンの子会社のすることですから、、、

3/5 (土)

友人が上京

中国電力の社員の小宇羅氏@広島が仕事で上京しているので、 合わせて JR 東海の社員の大場氏@山梨が帰京。 待ち合わせて、二人に会いに行く約束をする。

神保町のボンディでチキンカレーを食べた後、 昼過ぎに秋葉原で落ち合う。 三人で秋葉原を散策してお買い物。 小宇羅氏は秋葉原名物に「メイド喫茶」に行きたいと宣言していたが、 Mai:lish の前で人が並んでいるのを見ると尻込みをして断念する。

本日 購入した物品

三月兎 で マリグナントバリエーションの「味も見ておこう」を購入。 旧作にネット声優さんの声をあてたもののようだ (参考:2004 9/4)。

晩飯

晩飯に三人でデリーのカレーを食べた後で、 上野ラーメン屋でラーメンを食べてから別れる。

味の道:
アメ横の隣の通りにあるラーメン屋
味の道:皿うどん
皿うどんを食べる

今日の追突事故

正午過ぎに秋葉原の愛三電器前の交差点で、 トラックがタクシーに追突。

追突事故
衝突の瞬間を見てしまった
追突事故 追突事故
命に別状はない

3/4 (金)

お休み

体調不良。
風邪引いたかな?


3/3 (木)

[OS] Solari10 の Opteron 向けの NUMA サポート (Dan Price's WeblogAce's Hardware)

メモリがシステムバスの下にぶら下がっている Intel Xeon と違い、 AMD の Opteron はプロセッサー内にメモリコントローラを内蔵し DRAM メモリに直結されている。 そのため Opteron のマルチプロセッサシステムは メモリアドレス空間は共有していても、 ローカルメモリに対するアクセスと Hyper Transport Link を経由するリモートなメモリアクセスがあり、 それぞれアクセスレイテンシーが異なっている。
つまり Opteron マルチプロセッサは NUMA。

さらに Opteron は、プロセッサーあたり最大 3 個の Hyper Transport (HT) しか持たないので、 1つのプロセッサーに最大 3 個のプロセッサーしか連結できない。 そのため 8-way の場合には梯子型のトポロジーをなどを取るので最大 2 hop が必要になる。 この場合はメモリアクセスのレイテンシーが 3 段階になる。
もっと大規模なマルチプロセッサー構成をとる場合、 4 個とか 8 個の Opteron を 1 枚のシステムボードに納め、 システムボード間をクロスバーなどで結合する。 この場合は、 システムボードの外側への接続のためにプロセッサーの HT を 1 個まわすので、 4-way 構成であっても対角線上にあるプロセッサーのメモリへアクセスするためには 2 hop かかったりする。
つまりレイテンシーが多段の NUMA。

Linux も Windows もこのような構成を意識していないのだが、 Solaris10 には Hierarchical Latency Groups が導入されていて、 性能向上に役立っているようだ。 プログラムからは lgrp_latency_cookie(3LGPR) API で制御を行う。 実際に効果があるかどうか、職場の 4-way Opteron で試して見たいところだ。


3/2 (水)

[CPU] Pentium D (ITmedia)

Intel は酷使され過ぎた ``Pentium4'' の名前をようやく解放するようだ。 Smithfield コアからは商品名は Pentium D になるようだ。

2000年の11月に1.4GHzから始まった Pentium4 は 単一の名前の CPU としては最もバリエーションの多い CPU になったはずだ。 コア種類、ソケット種類、クロック、システムバスクロック、キャッシュ容量、Hyper-Threading Technology の有無等の違いによって 100 種類を超える亜種が存在している。 これに Extreme Edition、Xeon (DP/MP)、Celeron (D) というブランド名の違うバージョンがあるので頭が痛い。

本当は EM64T を実装した Prescott コアが出たときに一緒に改名をすべきだった思う。 Prescott が Pentium5 で、Smithfield が Pentium5D であればすっきりした。 このあたりは Intel が最初 AMD64 互換プロセッサーに乗り気でなく、 64-bit 機能が強調されるのを嫌っていたというのがあるかもしれない (EM64T も最初は IA-32e とか呼んでいたし)。 プロセッサーにも分岐分類学的な命名規則が必要なのかも。

[CPU][Prog] 64-bit ロード・ストアの問題

32-bit のプログラムを 64-bit に移植する際に、 64-bit のデータの境界が問題になる。 32-bit 環境では LP32 が普通だが、 long long int__int64 などの特殊なデータ型によって 64-bit 整数データを読み書きできていた。 ただ、32-bit 環境では long long int を 64-bit 境界に並べよというルールはなかった。

64-bit プロセッサー & 64-bit OS になると、 64-bit 環境にそろっていない場所から 64-bit を読み込むと

  1. できる。問題なし (AMD64)
  2. できない。CPU 例外が発生する (SPARC V、IA-64、Alpha21x64)

2. の場合は、 CPU 例外を OS の例外として解釈して SIGBUS 例外を飛ばすものと、 OS が CPU 例外を補足して上下 32-bit づつの分割してロード・ストアして補償してしまうものの 両方がある。 Linux 系は補償、 Solaris はエラー扱い、 HP-UX はデフォルトが扱いでオプションで補償に切り替えられる。

ただ Linux の 2.6 系カーネルは 64-bit 境界をまたぐ 64-bit ストアがあると 警告メッセージを表示することになる。 知らない間に /var/log/message が溢れていることがあるので気をつけないとだめね。

a.out(11018): unaligned access to 0x60000fffffffb524, ip=0x4000000000000780
コメントを書き込む
[suga] 2005-03-03 22:38:06
初期Prescottの低性能、高発熱にPentium5の初代冠をあげるのはIntel的にも辛かったのではないでしょうか?6**か5**JからであればPentium5でも・・・。

DはDesktop説とDualCore説がありますがどちらでしょうか?Mがモバイルなら前者なのでしょうか?
と、素人が呟いてみる。
[nminoru] 2005-03-04 21:50:53
性能に関しては、Intel のプロセッサー名が替わる時期は、新しいブランド名のプロセッサーよりも古いブランド名のプロセッサーの方が性能が上になるということが多いですよ(i486 → Pentium、Pentium → Pentium Pro、Pentium3 → Pentium4)。ユーザーはその時は文句をいいますが、時期に新しいブランド側の周波数が上がったり評価ベンチマークが切り替わったりして、性能面での逆転が解消されるものです。

64-bit 対応があるかないかで動くソフトと動かないソフトが出てきますから、ソフトを売る側からすると大変です。AMD だと Opteron と Athlon64 は 64-bit で、それ以外は 32-bit といえるので簡単ですが、Pentium4 と Xeon は 32-bit と 64-bit が混在してしまって判別不能ですよ。
[nminoru] 2005-03-04 21:51:06
Pentium D の ``D\'\' は Dual Core のようです。

3/1 (火)

[CPU] AMD が Open Platform Management Architecture (OPMA) の仕様を公開 (公式PDFITmedia)

AMD はサーバー管理システムの標準を作ろうと頑張っているようだ。

昨年の12/16 にも書いたが、 管理ソフトとサーバー間の通信インターフェイスとして Intelligent Platform Management Interface (IPMI) が決まっているが、 OPMA は IPMI をベースにした上でサーバー管理サブシステムのより細かい仕様を決めてしまおうというものらしい。

現状では各社のサーバーは、 自社のサーバー監視・管理ソフトでしか監視できない。 よくて HP OpenView のプラグインを配っているぐらい。 これが OPMA 仕様が普及することで、 単一のサーバー監視ソフトでそこらへんの PC まで含めてメンテナンスができるようになると嬉しいのだけど。

[MyWeb] Web ページの更新

「不正アクセスの発信地の国別統計をとろう」 のページをひさびさに更新。アドレスリストを生成するスクリプトを追加した。


先月の日記(2005年02月) 今月の日記(2005年03月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp