K.Sasada's Home Page

Diary - January 2003

研究日記

睦月

31 (Fri)

なにか締め切りすぎた
なにか締め切りすぎた
なにか締め切りすぎた

本日 1200 が締め切りでございます.現在最終チェック中.

現在 0255.

おわったーーーーーーーーーーーーー

多分.

なんか疲れて食欲もない.

30 (Thu)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 1 日

メモ:http://www4.0038.net/~kanso-bun/ , http://www.ne.jp/asahi/ymgs/hon/index03_kansou.htm

29 (Wed)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 2 日

ガーソ.手作業でなにかまでの日付を書き込んでたら一日ずれてやんの.まずい.相当まずい.卒業までなんとかこぎつけないと・・・.

28 (Tue)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 4 日

27 (Mon)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 5 日

さて、あとがなくなってきました。

26 (Sun)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 6 日

夜から。

ネットワークのアレ、どうなってんだろうなぁ。今は静まってるらしいが、朝がくればどうなることやら。

25 (Sat)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 7 日

締め切りすぎたはずなんだけどなぁ

肩が痛い。とても痛い。腕があげられない。なぜ?

24 (Fri)

なにか締め切りすぎた
なにか締め切りすぎた
なにかまであと 8 日

すぎてません。あと17時間。

バナナを食べてみる。あんまりおいしくない・・・。

バナナ、一晩冷蔵庫から出していたらおいしかった。冷蔵庫の中に入れちゃだめなのね。

[Ink-jet printing creates tubes of living tissue (/.)。うーん、なんというか、これは。このイメージのがご家庭でお手軽に作れると、、、うーん、ナニがうれしいんだろう。肝試しがリアルになります?

23 (Thu)

なにか締め切りすぎた
なにかまであと 1 日
なにかまであと 8 日

やばいです、いや、まじで。


C++で、関数オブジェクトを返す関数オブジェクトを作ると、関数が連続でできたりするんだろうか。

#include <iostream>

using namespace std;

class funcobj3{
public:
  void operator()(){
    cout << "f3" << endl;
  }
};

class funcobj2{
public:
  funcobj3 &operator()(){
    cout << "f2" << endl;
    return *(new funcobj3());
  }
};

class funcobj{
public:
  funcobj2 &operator()(){
    cout << "f1" << endl;
	return *(new funcobj2());
  }
};


int main(){
  funcobj obj;

  obj()()();

  getchar();
  return 0;
}

結果。

f1
f2
f3

うーん、できるもんだねぇ。

目がさめたら。

雪キター、って感じですな。寒い寒い。


深く考えずコピペ。何も考えていません。いや、ほんと。

http://ton.2ch.net/test/read.cgi/gline/1028811653/

例:「Rubyはスクリプト言語か」という議論をしている場合、あなたが
「Rubyはスクリプト言語としての条件を満たしている」と言ったのに対して否定論者が…

 1:事実に対して仮定を持ち出す
     「Rubyが文字列処理が不得意ならばどうだろうか?」
 2:ごくまれな反例をとりあげる
     「だが、時としてRubyはCのソースコードにすることもできる」
         # もう rb2c みたいなのってはやらないんかな
 3:自分に有利な将来像を予想する
     「何年か後、Rubyが静的コンパイル言語にならない保証は誰にもできない」
         # できないようなぁ、誰にも
 4:主観で決め付ける
     「Rubyがスクリプト言語だなんて誰も思っていない」
 5:資料を示さず自論が支持されていると思わせる
     「世界ではRubyはスクリプト言語じゃないという認識が一般的だ」
         # 世界のruby
 6:一見関係ありそうで関係ない話を始める
     「ところで、C++のテンプレートって知ってるかい?」
         # すみません、よく知りません
 7:陰謀であると力説する
     「それは、Rubyがスクリプト言語だと都合のよい・・・誰?」
         # 誰かいるのかな・・・都合のいい人
 8:知能障害を起こす
     「何、Rubyごときにマジになってやんの、バーカバーカ」
 9:自分の見解を述べずに人格批判をする
     「Rubyがスクリプト言語なんて言う奴は、社会に出てない証拠。現実をみてみろよ」
         # 社会では ruby は使われていないような気がする
 10:ありえない解決策を図る
     「結局、Rubyがコンパイルできるようになればいいって事だよね」
         # ありえなくはないと思うが、大変だろうなぁ
 11:レッテル貼りをする
     「Rubyがスクリプト言語だなんて過去の概念にしがみつくハッカーはイタイね」
         # 未来の ruby はどうなんだ
 12:決着した話を経緯を無視して蒸し返す
     「ところで、Rubyがどうやったらスクリプト言語の条件をみたすんだ?」
 13:勝利宣言をする
     「Rubyがスクリプト言語だという論はすでに何年も前に論破されてる事なのだが」
 14:細かい部分のミスを指摘し相手を無知と認識させる
     「Rubyって言ってもRubyからminirubyまでいる。もっと勉強しろよ」
 15:新しい概念が全て正しいのだとミスリードする
     「Rubyがスクリプト言語ではないと認めない限りプログラミング言語に進歩はない」
          # そのころにはもっと言語が増えてんのかなぁ
          # あすぺくと指向スクリプト言語とか?
          # 自然言語スクリプト言語・・・自然言語ならスクリプトにする意味が無いか・・・

我ながらいまいち。Rubyはオブジェクト指向か、ってほうがよかったかなぁ・・・。

んー、で、Rubyはスクリプト言語なのですか? :-P

(スクリプト言語ってナニって話か。。。bitでも読み返しますか)

C++ でネタにするとしたらなにかな・・・。Javaでネタになるかな・・・。

require 'thread'

GQ = Queue.new

t1 = Thread.new{
  loop{
    e = GQ.pop
    break if e == '.'
    puts "1:#{e}"
  }
}
t2 = Thread.new{
  loop{
    e = GQ.pop
    break if e == '.'
    puts "2:#{e}"
  }
}

while e = gets.chomp
  break if e == '.'
  GQ.push e
end

うーん、こういうサンプルアプリがあればいいんだよな。うーむむ。卒論にでっちあげるかなぁ。

22 (Wed)

なにか締め切りすぎた
なにかまであと 2 日
なにかまであと 9 日

http://ton.2ch.net/test/read.cgi/gline/1028811653/ を見た。なんかネタ作れないかな。

Peephole Displays: Pen Interaction on Spatially Aware Handheld Computers (/.)。おっもしろいこと考えるなぁ・・・。一瞬、あだるとな用途に利用するのかと思ってしまった。

21 (Tue)

なにか締め切りすぎた
なにかまであと 3 日
なにかまであと 10 日

やばいです。本格的に。


なぜか3Dソフトについてちょっと調べてみる。モデリングソフトとレンダリングソフトって別物なのですね、知らなかった・・・?

20 (Mon)

なにか締め切りすぎた
なにかまであと 4 日
なにかまであと 11 日

うー。

自分でコンテンツをでっちあげるアンテナとか。

_19(Sun)

今日OO2003のチュートリアルなので、慌ててオブジェクト指向入門を読みだす。あと500ページか。間に合うかな。

結構微妙な表記もある気がするなぁ。細かいことは気にしないとくか。

Eiffel って参照に Create とか Forget ってやるのか。気色悪いなぁ。

まぁ、どっかの a = new A() よりは楽か。

self/this/Current

  • プロシージャ:動作を実行。すなわちオブジェクトの状態を変更
  • ファンクション:オブジェクトの状態からある値を計算

メソッドはその両方? ルーチンの別名?

あはは。P127。

どうやら人はこういったプログラムのか書き方がわかるようになるまで、その手法全体を信用しない傾向にある

P129。

操作の実行順序を基に作られたシステムは外部使用の変更による影響を大きく受けやすい

そうだよなぁ。

17 (Fri)

日課になってきた。

なにか締め切りすぎた
なにかまであと 7 日
なにかまであと 14 日

うひ、あと一週間か。

[ruby-dev:19366] 、matzさんって魔法使いだったのか。

世界からバナナがなくなる日 (/.)。ハッカーはバナナがお好き? 今度ためしてみよう(何を)。

http://slashdot.jp/comments.pl?sid=68609&cid=237172 より引用。

大先生と呼ばれるほどの大バカじゃなし

うまい!

うーん、センター試験で入構禁止か。家だと気がちっちゃっうんだよな。できるかなー。センター試験懐かしいなぁ。

16 (Thu)

お、日がかわった。

なにか締め切りすぎた
なにかまであと 8 日
なにかまであと 15 日

ふと思ったのだけど、C で、


void f1(){
	f2(10); // warning
}
void f2(){
	global_Hoge++; // error
}
int global_Hoge;

とすると、怒られる。正しくは、

void f2(int); // prototype
extern int global_Hoge;

void f1(){
	f2(10);
}
void f2(int i){
	global_Hoge++;
}
int global_Hoge;

としなければいけない。うーん、2パスくらい平気で回るんだから、いいじゃんそれくらい、とか思うんだけれど、そんな考えじゃだめなんだろうか。ファイルスコープの中に実体があれば、いいような気がするんだけどなぁ。あれ、構文解析は1パスで済むか? いや、goto label とかは後方参照してるから、やっぱり2回以上は回るよなぁ(ラベルが特殊なだけだったりして)。

C99 とかだと、なんか変わってんのかな。


やっとベジェ曲線でなんか書く方法がわかった。そうか、こういうものだったのか。

昼、袋ラーメン、夜、袋ラーメン、朝、パンにチーズ挟む、昼、袋ラーメン。その間にスナック菓子をばりばり。死ぬな、このままだと。

先日私もgdbを初体験(telnet越し)したけど、案外わかりやすいですね。でも、やっぱりVCのデバッガ(が|は)いいや。

15 (Wed)

なにか締め切りすぎた
なにかまであと 9 日
なにかまであと 16 日

まだ過ぎてないって・・・。本日の17時。

締め切りのこの論文に、「なので記名」と書き添えたくなる誘惑をぐっと堪える。グっと。

おめでとーございます>先生

14 (Tue)

なにかまであと 1 日
なにかまであと 10 日
なにかまであと 17 日

13 (Mon)

たいむりみっと表示ぷろぐらむ。

puts [15,24,31].map{|i|
  n = i - Time.now.day
  n>0 ? "なにかまであと #{n} 日" : "なにか締め切りすぎた"
}

=>
なにかまであと 2 日
なにかまであと 11 日
なにかまであと 18 日


だめだ、こういうのを書くと、

  • 今月しか対応してない
  • 項目が無い(なにか、ってなんだ)
  • 更新が手動

とかが気になって、ついつい拡張してしまいたくなってしまう。いや、逃げてるのはわかってるんだが ^^;。

あと2日ですよ、あと2日。

12 (Sun)

bruby は、ノード(構文木)をrubyで弄れるようになると面白いと思う、ってlispか、それじゃ。brubyってどこまでやるプロジェクトなのかなぁ。

ぉ、PAPI が Pentium4 サポート(alpha)だって。HT対応したのかな。どうかなどうかな。

perfctr-2.4.3 。HT対応キター! あーあ、夏にこれがあればなぁ。うーん、来年誰かやってくれないだろうか。

そういえば、月姫ネタをよく聞くのはメルブラ効果なんだろうか。てゆーか、完成度高すぎ>メルブラ

シミュレータ、キャッシュを考えないほうが遅いってどういうことやねーん。笑った笑った。

10 (Fri)

だらだら・・・。

Latex \thanks 問題、やっと解決。というか、author / thanks を使わずに maketitle を直接書いただけ。我ながらひどい。

ガベージコレクションとガーベッジコレクション、どちらがいいんだろう。Google様に聞いてみると、前者 4500、後者1000件、ということで前者にけってー。

スパゲッティーを作ってみる。食べれるかな、食べれるかな。

食べれた。結構おなかいっぱい。でも一味足りない。今度タバスコかっとくかなぁ。

そういえば、家に VoIP ルータがきた。@nifty の体験版。つけるひまあるかな。あるかな。

9 (Thu)

冷蔵庫でパンを発見。消費期限は 14.12.24 とかいてあります。どうしてくれよう。

カントリーマーム(不二家)を電子レンジであっためて食べる。これはおいしい。


パン。憎き日(謎)が賞味期限のパンの学術的探求結果。

におい。普通のパンでした。少し、パンの匂いが強いかな、と思うくらい。

見た目。特に変わった点はなし。解剖しても、とくにやばくなし。

さわり心地。どろどろしてるとか、そういうのはなし。しかし、こころなしぬるっとしてるような・・・。

んで、味。普通のパン。噛んでいくとサァっと爽快感が口の中に広がっていくような感覚が・・・。すみません、飲み込めませんでした。

まぁ、冷蔵庫に入ってたんだから、平気だとは思うんだが。


MMORPG Watch というのを見ていて、世の中は広いんだなぁ、と深く関心してみる。MMORPG 自体には、まだまだいろんな可能性があるとおもうので、とてもおもしろい。簡単にそういうのが作れるようなものはないものか。ruby でなんか考えてみるかなぁ。python を使ってうんぬんはあるそうなので(SourceForge.net: Project Info - Arianne RPG )。というか、すでにあったりして。

某Pコンテスト、いつまで「募集要項」にNewがついてるんだろ。もう募集締め切ってるやんか。いつ発表すんのかなぁ・・・。図書券くらいもらえないかなぁ・・・。


本家インタビュー:サイバー法学者レッシグ教授 を興味深く読みました。その中の、

5) file sharing and copyright law ファイルシェアリングと著作権法 (略)  こういえば理解しやすいかもしれない。我々は毎日10人の子供たちが銃で殺される国に住んでいる。だがスミス&ウェッソンは彼らの技術を使って誰かが犯罪を犯したという理由でFBIに逮捕される心配なんてしていない。法律は技術の違法な利用を対象にするのであって、技術そのものを対象にしているわけじゃない。少なくとも、そのテクノロジーに合法かつ正当な利用法がある限り。だが話が著作権に及んだ途端、我々は著作権によって保護される利益を脅かすといって技術そのものを禁じるという極端に走ってしまう。その技術が正当な用途を持っているかどうかに関わらずに。

というところが、銃を容認している国の人なんだなぁ、と思った。どちらも難しいはなしだとは思いますが。

8) IP Laws of the Future 未来の知的財産権法

の3項目は、GPLに対する非難なんだろうか?


rava 論文進まず。うぇぶさーふぃん(古)進む進む。きょうは帰って寝ようかなぁ。

8 (Wed)

いいなぁ、RHG読書会。いきたいなぁ。その前に読みたいなぁ。

zip は導入されたんですね。どうやっておとしどころをつけたんだろう、今度見とこう。


うーん、素敵な結果に喜んでたら、どうやらプログラムのほかの要因が絡んでいたらしい。まぁ、期待していたようにすごくなくても、10% 向上って結果が出たからいっか。うん。

そろそろ、プリミティブにたいして評価を詰めていこうっと。方式検討はいいかげんにしないと。

というか、そろそろ文書を真剣に書かないと・・・。とりあえず Rava の2ページが重い・・・。

うー、実装に夢中になっていたらこんな時間だ。かえろかえろ。文書作成もこれくらい夢中になれたらなぁ。

7 (Tue)

なんか。2タブはだめだよ。会社的にだめだよ、ってすっっげーー非難される夢を見た。なぜこんな夢を見たんだろう。しかも会社ってなんだよ。

2tab で迫害されたことはないので、いったいなんでこんな夢を見たのか謎。

今は、2tab ってゆーか 2space で全部インデントしてるけど。

クライスラーがAKIRA風のバイクを試作 (/.j)。かっちょええ〜。


ruby で、 [1,2,3] と [4,5,6] があったとき、[5,7,9] とするようなプログラムってどうやるんじゃ、とかいうはなしを irc でしてた。だらだらと考えてみる。zip あればねぇ。

a = [1,2,3] ; b = [4,5,6] として、c に答えを格納しようとすると、

c = [] ; a.each{|i| c << i+b.shift}
c = [] ; a.size.times{|i| c << a[i] + b[i]}
c = a.map{|i| i+b.shift}

def twoarray a,b
  bb = b.dup
  a.map{|i|
    yield i,b.shift
  }
end
p twoarray(a,b){|i,j| i+j}

どれもきれいじゃない・・・。


研究が煮詰まる、というか飽きると日記が進む。うーん、進む進む。

昼飯を久々に外食してみようと、てきとうに店に入ると、食器がすべて「不思議の国のアリス」な絵柄なオムレツ屋だった。外でオムライスは久々だったけどおいしかった。

こう、大学でぱんださん幼稚園を聞いてプログラムをしてあたまを腐らせる夜中。

6 (Mon)

実験結果が出るも、あまり面白みのない結果でへなへな。うーむ、どうしてくれよう。

しかし、今日はなんか人と話すぎたような気がする。10時から5時までしゃべりっぱなし。正月でしゃべらなかった反動か。

さすがに疲れたので帰ろうっと。

5 (Sun)

Ruby の話。Struct.new で作られるクラスに pack / unpack メソッドがあればうれしいんじゃないかと思い、ちょっと考えてみる。

Struct.new で作られるクラスは、Struct を親として持つようなので、Struct 自体に pack / unpack を持たせてしまえ、ついでに pack template 文字列設定メソッドも。

pack はインスタンスメソッド、unpack , set_pack_template はクラスメソッドでゴー。

class Struct
  def self.set_pack_template tmpl
    self.const_set :PACK_TEMPLATE,tmpl
  end
  def pack
    to_a.pack(self.class::PACK_TEMPLATE)
  end
  def self.unpack src
    new(*src.unpack(self::PACK_TEMPLATE))
  end
end

で、試す。


PT = Struct.new(:x,:y)
PT2 = Struct.new("PT",:x,:y)

PT.set_pack_template 'II'
PT2.set_pack_template 'II'

で、PT では例外(set_pack_template なんてシラネーゾ!)。はて、なんでだろう。つーか PT2(タグ名付き) ではオッケーなのがますます不思議。なんで?

(ruby 1.6.7 (2002-03-01) [i586-mswin32])

強引すぎるんで、デリゲータでいいんだっけ、あのへんを使うのがいいのかなぁ。


ついでに不思議なのが、'.' と '::' の違い。obj.Const じゃぁ定数にアクセスできなかった。これも、ふしぎ。うーん、まだまだ知らないことだらけだ。


Cでプログラムを書いていると、文字列を '' ' '' で囲ってしまう。C言語なんて嫌いだ。


ウェブが遅いのは、透過プロキシ君がなんかアレなのが原因らしいとのこと。もともと、研究室のプロキシサーバは遅いんだけど(笑)、これは異常。

ネットワーク技術というか、サーバの運用方法、まだまだわからないことばかりです。


全国大会のなにかを書いてるんだけど、ぜんぜん筆が進まず。

んで、逃避のために、レイアウトをいじるが \author でわからなくなる。

\author{ささだ \thanks{のーこーだい} \and せんせい \thanks{のーこーだい}}

とすると、「のーこーだい」という、著者、共著者が同一の所属にもかかわらず、脚注に「のーこーだい」が2つ出てくる。これはかっこうわるい。とてもわるい。どうしてくれよう。

レイアウトを全部手作業でいじるのもいやだしなぁ。最悪 MS-Word に逃げるというのも手か。2P だし。

TeX もぜんぜんわかんない。もう、知らないことばっかりでいやになる。

4 (Sat)

2000ヒット超えたー。ばんざーい。アクセスしてくれる方ありがとうございます。

MMORPGに関して、吉田君と大いに語ってしまう。いいじゃん、ノービスで挫折したって。

3 (Fri)

プロキシサーバ指定してやるとそれなりの速度が出る。てことは、ルータ? はて。


c2rb というのを考えてみる。Cのソースからruby のソースを吐く。rb2c があるから逆。うーん、俺ってそんなのばっかやな。

実行トレースとか、やりやすいと思うから、まったく無用ってことはないと思うのだけれど。C の資産が ruby で使えるぜーとは言いませんけど(いや、つかえへんこともないんか)。拡張ライブラリ作ったほうが早そうだし。でも、こないだそれ使いたかったな。データ吐く簡単な C のプログラム、いじるのは大変だったやつ。さて。卒論が終わったら racc の勉強ともども作ってみよう。というか、誰か作ってくれないかな。


ソースを改造しようと、xxx.c を xxx.bak.c にしようとするも、エラーが出る。不思議におもって見てみると、すでに昔自分が xxx.bak.c を作っていた。さすが自分、考えること(命名規則)がいっしょだ。

ふと見るとプリンタの設定がない。うはー。マシンあたらしくしたから、いれてなかったのか。

科学技術論文の書き方 。おお・・・。処理学会全国大会のスタイルシートを求めてさまよっていたら、発見。よく読んどこう。

 また,学生としては,学位取得の為に次のような論文を書く必要がある.

から始まる段落、卒論とかについての文書だけど、参考になります。

しかし、うちの学科の3年にあわせてると、C言語の文法の説明からはじめなきゃいけない気がする。

さすがにそれはないか。しかし、コンパイルとリンクの説明や、newlib とかがいったいなんのために必要か、とかは書かないとわからない気がする。付録? MIPS アセンブラについての説明っているんだろうか。

これも引用。

また,個人的な努力(プログラム作成のために3日徹夜したとか),作業上の工夫(vi ではなく Emacs を使用したとか)は本文に書くべきではない.それは単に君の能力が劣っていることを公表するだけのことである.どうしても書きたければ付録とせよ(学会論文では厳禁).

う、劣ってる、ですか。


ととと、情報処理学会全国大会。

必ずAcrobat Distillerを使って作成してください.特にイラストや画像,数式,グラフ等を含むPDFファイルの作成はPDF Writerを使用しないでください.

とあるんですが。うーん、Acrobat 持ってないやつは来るな! ですか。うーん。dvipdfm はだめなんだろうか。


PoorMac D3(Macinization) 。いやー、面白い。

2 (Thu)

あけましておめでとうございます。

ことしもよろしくおねがいします。

2003年ですよ。素数ですよ。素数。

ruby -e "require 'mathn';p 2003.prime_division" #=> [[2003, 1]]

ついつい新年なので(謎)、Unix Magazine連載: 横着プログラミング を見ふけってしまった。メモについて、考えてみる。うーん、俺ってメモ下手だなぁ・・・。もうちょっとなんか考えたい。

今年の目標。

  • 学部を卒業する
  • 理科系の作文ができるようになる
  • FD 5 枚以上さばく(謎)
  • もっと hack できるようになりたい
  • あと5個はプログラミング言語覚えたい
  • Java を使えるようにする(ぉ
  • 来年の学費を稼ぐ
  • 外国へ行く

んー、あとはなんかあるかなー。

昼飯はカップ焼きそばにカップ蕎麦。うーん、正月らしく、豪勢だ。腹いっぱいで眠くなってきた。

しかし、研究室からの、ウェブ(http)へのアクセスが異様に遅い。proxy サーバが死んでるんだろうか。はて?

んー、外からのアクセスは普通なので、やっぱり proxy というか、内部の問題だろうなぁ。

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:51 $