前の月 / 次の月 / 最新

たまにっき。 / 2005-09

2008 : 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
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12

2005-09-30 Fri

学部時代の友人から電話がかかってきて

今から行くから

と.

で,A 嶺君,T 人さん,O 西さんの 3 人でやってきた.
共通の友人が明日結婚するので,メッセージカードを書けとのこと.
結婚するということを聞いて,一度びっくり.結婚する相手を聞いて二度びっくり.

へぇ.あの 2 人が結婚するのか・・・としみじみ.

Category: [日常]

2005-09-29 Thu

AddTracer

少し JVMTI を触ってみた.AddTracer では今まで tracer 埋め込み処理が必要だった.それをクラスロード時に動的に埋め込めるようにした.すなわち,今までは静的にしか AddTracer を起動することができなかったが,本来動かしたいアプリケーションを実行するときに同時に AddTracer を起動させることが可能になった.
ただ,コンパイルが環境によっても変わってくるし,JDK 5.0 以降しか使えないので,まだ未公開.

以下の手順で実行している.
1. JVM 初期化時に AddTracer がロードできるようクラスパスを追加.
2. JVM 初期化終了後,AddTracer をロードし,new する.
3. クラスロードフックを設定.これでクラスがロードされる直前でバイトコードに対し,処理を行うことができる.
4. クラスロード直前のバイトコードに対して AddTracer を適用.
5. 以下のような実行だけで OK.事前に tracer を埋め込む必要もなくなった.

$ javac HelloWorld.java
$ java -agentlib:addtracer HelloWorld
<!-- begin Method HelloWorld#main       // line 3 defined in - -->
args[0-0]       *       assignment      // line 3
args.length     0       assingment      // line 3
java.lang.System#out<s> java.io.PrintStream@1a786c3     reference       // line 3
Hello World!
<!-- end Method HelloWorld#main // - ending at line 4 -->



うーん,便利だ,JVMTI.

Category: [Java][開発]

CSS 2005

出席することになった.[2005-10-26][2005-10-28] の 3 日間.
発表はしないけど.

Category: [schedule][研究]

Apache Tomcat 5.5.12-alpha Released

via TomcatがApacheのTLP(top-level project)に (slashdot.jp)
Jakarta Tomcat から Apache Tomcat になったのか.これからは http://tomcat.apache.org/ なのか.
でもアクセスすると

You're probably looking for this.

とか言われて http://jakarta.apache.org/tomcat/ に飛ばされる・・・.orz

Category: [Java]

ブログで教師を侮辱 学生に停学処分

ブログで教師を「上品ぶった」「欲求不満のオールドミス」と書いたある中学校の生徒は、この記述を削除するよう命じられた。

ブログだからってもんでもないと思うけどなぁ.「欲求不満のオールドミス」なんてのは口頭で言ったとしても,謝罪を要求されるのでは?

Category: [misc]

2005-09-28 Wed

2005-09-27 Tue

プログラムに特化した不可逆圧縮手法

なるものを考えてみた.

これはプログラムを圧縮するとき,圧縮率が良くなるように,ただし,プログラムの仕様を変更することはないように,プログラムを改変しつつ圧縮しようという試みである.

1. プログラム中に含まれる予約語,グローバル変数を対象に各文字の出現頻度をカウントする.
2. ローカル変数名を,先ほど数えた頻度表から出現頻度が高い文字に変換する(スコープを考慮してできるだけ出現頻度が高い文字を使いまわす).
3. 他のファイルから参照されない関数名も出現頻度が高い文字に変換する.
4. 不必要なスペース,タブを削除する.
5. gzip なり bzip2 なりで圧縮する.

これで圧縮すると圧縮率が増えるはずだ.伸張後は indent(1) すればスペースを削除していても問題ないはず.

まぁ,しかし,こんなことをやって圧縮率を上げるより,gzip --best でもやった方が効率的だな.

Category: [プログラミング]

これぞ温家宝の唱える「中国型民主」(笑)

via のんべんだらり
空想の話なら笑えるが,事実だとすると笑えねぇ.

Category: [misc]

Firefox 1.0系 はメモリを解放しない?

via 今日の戯言ChangeLog
about:config にて設定追加.
browser.cache.memory.capacity = 65536

Category: [Firefox]

es


こえー.実話を元にした話というのが更に恐い.
まぁ,実験が失敗したのは止める勇気がなかったからだな.どんなことでも色気を出すと終わってしまう.

Category: [映画]

2005-09-26 Mon

国語テスト、消える長文 著作権理由で訴訟も

「教科書を読んでこたえるもんだい 『鳥のちえ』を読んでこたえましょう。53ページ10行めから、55ページ9行めまでを読みましょう」
 小学校2年生の教科書に準拠したあるテストでは冒頭に、こんな記述がある。

最近の問題集は著作権の関係上こうなっているらしい.せちがらい世の中になったもんだ.

Category: [misc]

2005-09-25 Sun

Big Fish


泣く映画として,色んなところで紹介されていたので見てみた.
でも,私は泣くところまではいかなかった.まぁ,何回か見ると泣けてくるのかもしれないが.

内容はほのぼのとして,最後にほっとするような私好みの映画で良い.

あの 巨人のおっさん が俳優だということは以前丸見えかなんかで知っていたんだが,初めて出演作を見た.他にもいろんな映画に出てる みたい.

Category: [映画]

2005-09-24 Sat

13 階段


なんだか,よくわからなんだ.登場人物がみんな声をひそめて喋るのでよく聞きとれないし.

Category: [映画]

2005-09-23 Fri

いま,会いにゆきます


全体的にほのぼのしていて,良い.ドラマの最後は少し中と半端だったが,原作はきれいにまとまっていた.

ref. [2005-09-18]

Category: []

2005-09-22 Thu

EXESEQ 動的バースマーク for Java

ふと思いついて現実逃避に,JVMPI を使って,EXESEQ 動的バースマーク を抽出するコードを書いてみた.hprof のソースを参照にすると簡単に書けた.

J2SDK 1.4 用.気が向けば JDK 5.0 用に JVMTI を使って書くと思う.

$ cat extb.cc
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <jvmpi.h>

typedef struct _method_list_item{
  jmethodID method_id;
  char *class_name;
  char *method_name;
  char *method_signature;
  struct _method_list_item *next;
} method_list_item;

// global jvmpi interface pointer
static JVMPI_Interface *jvmpi_interface;

method_list_item *first = NULL;

void add_list(const char *class_name, JVMPI_Method method){
  method_list_item* m;

  m = (method_list_item *)malloc(sizeof(method_list_item));
  m->method_id = method.method_id;

  m->class_name = (char *)malloc(sizeof(char) * (strlen(class_name) + 1));
  strcpy(m->class_name, class_name);

  m->method_name = (char *)malloc(sizeof(char) * (strlen(method.method_name) + 1));
  strcpy(m->method_name, method.method_name);

  m->method_signature = (char *)malloc(sizeof(char) * (strlen(method.method_signature) + 1));
  strcpy(m->method_signature, method.method_signature);

  m->next = first;
  first = m;
}

method_list_item *find_list(jmethodID method_id){
  method_list_item *m;
  method_list_item *prev = NULL;

  for(m = first; m != NULL; prev = m, m = m->next){
    if(m->method_id == method_id){
      if(prev != NULL){ // 見付かったら一番前へ
        prev->next = m->next;
        m->next = first;
        first = m;
      }
      return m;
    }
  }
  return NULL;
}

// function for handling event notification
void notifyEvent(JVMPI_Event *event){
  method_list_item *item;
  int i;

  switch(event->event_type) {
  case JVMPI_EVENT_METHOD_ENTRY2:
    item = find_list(event->u.method_entry2.method_id);
    if(item == NULL){
      fprintf(stderr, "birthmark> \n");
    }
    else{
      fprintf(stderr, "birthmark> %s %s %s\n", item->class_name,
          item->method_name, item->method_signature);
    }

    break;
  case JVMPI_EVENT_JVM_SHUT_DOWN:
    for(item = first; item != NULL; ){
      method_list_item *m;
      m = item;
      item = item->next;
      free(m->class_name);
      free(m->method_name);
      free(m->method_signature);
      free(m);
    }
    break;
  case JVMPI_EVENT_CLASS_LOAD: 
    for(i = 0; i < event->u.class_load.num_methods; i++){
      add_list(event->u.class_load.class_name, event->u.class_load.methods[i]);
    }
    break;
  }
}

// profiler agent entry point
extern "C" {
  JNIEXPORT jint JNICALL JVM_OnLoad(JavaVM *jvm, char *options, void *reserved) {
    // get jvmpi interface pointer
    if ((jvm->GetEnv((void **)&jvmpi_interface, JVMPI_VERSION_1)) < 0) {
      fprintf(stderr, "birthmark> error in obtaining jvmpi interface pointer\n");
      return JNI_ERR;
    }

    // initialize jvmpi interface
    jvmpi_interface->NotifyEvent = notifyEvent;

    // enabling class load event notification
    jvmpi_interface->EnableEvent(JVMPI_EVENT_JVM_SHUT_DOWN, NULL);
    jvmpi_interface->EnableEvent(JVMPI_EVENT_METHOD_ENTRY2, NULL);
    jvmpi_interface->EnableEvent(JVMPI_EVENT_CLASS_LOAD, NULL);

    return JNI_OK;
  }
}
$ gcc -mdll -Wl,--enable-auto-import -Wl,--add-stdcall-alias   \
  -mrtd -g -O3 -Wall -I /usr/local/java/j2sdk1.4.2_04/include/ \
  -I /usr/local/java/j2sdk1.4.2_04/include/win32/ -mno-cygwin  \
  -o extb.dll extb.cc
$ java -Xrunextb HelloWorld


Referrer (Inside): [2007-09-27-1]
Category: [Java][研究][birthmark]

Javaで必要なのは周辺環境の知識

「Javaを覚えればJavaアプリケーションを作ることができる!」。当たり前のことのようですが、実は半分正解で半分誤りです。

だな.J2EE 分野じゃなくても,ちょっと凝ったことをしようと思うと拡張ライブラリ使うのは当たり前だなぁ.

Category: [Java]

愛知万博マスコットの偽物登場 口コミで広がる

via キリゾー&モッコロ, キリゾー&モッコロ攻撃

万博協会は「人気が全国区になった証し。実害もなく、目くじらを立てるほどでもない」。

懐の深さがカッコイイ.

Category: [misc]

2005-09-21 Wed

野々村「ふしぎ発見」初パーフェクト賞の記念パーティー

via /home/pochi/ChangeLog
あー,なんかパーフェクト取ってたような気がする.

Category: [TV]

今日から後期の講義開始.

1 時限目からなので,早起きする.これを機に早寝早起きを習慣付けようかと考えてみるテスト.

Category: [日常][仕事]

2005-09-20 Tue

「日本一」の道のりを踏破しよう

天神橋筋商店街を通り抜けると証明書がもらえるらしい.大阪に行って,暇なときにでもやるか?

と言いつつ忘れそうな予感はするけど.

Category: [misc]

2005-09-19 Mon

大人の科学 Vol.09

これは買いだな.

Category: []

“方言ブーム”とです。 響き新鮮、想像する楽しみ

via Overlasting Life!!
関西で知り合った友人と関東で会って,標準語で喋られると非常に違和感を感じる.私は 2 年間東京に住んでいたが,京都弁から離れる気配すらなかったなぁ.

Category: [misc]

2005-09-18 Sun

いま,会いにゆきます

ドラマ最終回を見た.原作も映画も見ていないので,ラストがどうなるのかが気になっていたのだが,なるほどねぇ.
なんだか 時の鳥篭 を思い出した.

さて,積ん読状態にしておいた 原作 を読み始めよう.

Category: [TV]
Referrer (Inside): [2005-09-23-1]

2005-09-17 Sat

IEICE ET 研究会

行ってきた.最後の手話の学習支援システムが面白かった.

Category: [研究]

2005-09-16 Fri

Javaの理論と実践: 動的プロキシーで装飾する

Proxy を使ってのアダプタ実装は面白い.

こんなの.

public class GenericProxyFactory {
  public static<T> T getProxy(Class<T> intf, final T obj) {
    return (T)Proxy.newProxyInstance(obj.getClass().getClassLoader(),
      new Class[] { intf },
      new InvocationHandler() {
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          return method.invoke(obj, args);
        }
      }
    );
  }
}


Category: [Java]

2005-09-15 Thu

「パスワードのみのユーザー認証は危険」―専門家が警告

サイト毎にユーザー名やパスワードが異なる状況は何とかするべきだ

だな.

Category: [misc]

2005-09-14 Wed

2005-09-13 Tue

帰ってきた.

やっぱり 12 時間くらいかけてバスで帰ってくる.移動にこれくらいかかるのであれば,2 泊 3 日じゃあ少し短いなぁ.写真はまた今度.

Category: [研究室][旅行]
Referrer (Inside): [2005-09-11-1]

2005-09-12 Mon

サイクリング

四万十川周辺をまったりサイクリングする.なんか,まったりと言いつつ,結局 20 km くらい走っていた.ケツがイタイ.

更に日焼け止めを塗っていなかったせいで腕と顔が真っ赤に.しかもくっきりはっきり腕時計の跡が・・・.
しばらく水風呂を余儀なくされるなぁ.

Category: [研究室][旅行]

2005-09-11 Sun

四国

バスで 12 時間かけて四国の宿毛まで行く.疲れた.
晩ご飯で出てきたカツオのたたきが激ウマ.

Category: [研究室][旅行]

研究室旅行

これから研究室旅行で四国に行ってくる.[2005-09-13] に帰ってくる予定.

Category: [研究室][旅行]
Referrer (Inside): [2005-09-04-1] [2005-07-14-1]

2005-09-10 Sat

清水順正 と 一二三

順正で好き焼を食った.そこで I 垣の子供,I 崎の子供に遊んでもらう.
その後,一二三で焼肉を食う.そこで,I 崎の下の子供に気に入られる.

別れ際にその子に泣かれそうになって非常に困る.「おっちゃんの子になるか?」と聞くも,お母さんに「うちの子や!!」と言われる.まぁ,両方とも冗談だとわかってるんだけども.

Category: [日常]

清水順正

これから京都へ行って,清水純正にて食事.

Category: [日常]
Referrer (Inside): [2005-09-04-1] [2005-08-19-2]

2005-09-09 Fri

ハリケーン「カトリーナ」は引退するかもしれない

甚大な被害を及ぼした台風・ハリケーンの名前は背番号の永久欠番のように残しておこう、という仕組み。

へぇ.

Category: [misc]

【演出?】 阿部レポーターの台風中継  【ワロス】

118 :番組の途中ですが名無しです :2005/09/06(火) 23:58:53 ID:58ynp/7b0
    カメラなんて、ブレてないしねwww
    リポータはフラついてるのに


まぁ,

30 :番組の途中ですが名無しです :2005/09/06(火) 23:12:45 ID:IfYHtVKO0 ?##
    そろそろこういうレポーターが一人死ぬ必要があるよな。

だな.

ref. 9/6放映 日テレ「ザ・情報ツウ!」でやらせ 台風情報で阿部祐二レポーターが「演技」