Rukeの日記
ホームページ最新月全表示|携帯へURLを送る(i-modevodafoneEZweb

2003年11月
前の月 次の月
            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            
最新の絵日記ダイジェスト
2005/03/03 ブログー
2005/02/27 サンデーメガネ
2005/02/24 リッタイシ
2005/02/23 アメノイワヤト
2005/02/21 ホムパゲ

直接移動: 20053 2 1 月  200412 11 10 9 8 7 6 5 4 3 2 1 月  200312 11 10 9 8 月 

2003/11/29(土) ズケーヲヨッツー
JAVAの課題だ。
http://lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-03/cp-03-07-6.html

図形を四つ以上書く。
気の利いたデザイン(図形あるいは図形の配置)は加点の材料になります.

だそうだ。一体何をどうしろと。曖昧な評価基準はかえって困る。

とりあえず予想として、

季節柄、一生懸命クリスマスツリーorケーリを描く
頑張ってWindowsの画面を再現して、しかもスタートボタンとか押せるようにする。

をする人は絶対にいるだろう。

う〜ん、私はどうするべきか…。

余談だが、光物好きな私としては、クリスマスが近くなった時の、電飾を意味も無く施された街というのが結構好きだ。電力の浪費という観点からは全く賛成できないが…。

ただし、一つ言いたいことがある。頼むから電球の色そのままのオレンジの光はやめてくれ。雰囲気もくそもないではないか。色をつけろ色を。

2003/11/28(金) コタエハダレニモワカラナイ
今日の実験は早めに終わったうえに面白かった。すごく面白かった。

熱放射と光の量子性というタイトルであったが、光の量子性はエネルギースペクトル(プランクの放射式)に含まれているだけで、別にこの実験が光の量子性と直接どーのこーのするわけではないあたりが適当である。

んで、プランク定数を求めるわけだけど、これがどのグループでも実際の値より小さく出る。そうすると誤差というよりは、もっと重要ななんらかの要因がからんでくると考えられるわけで。それをちゃんと考察してくるように言われた。

ところが、この実験、説明読んでて感心したことに、見積もることが難しい効果は全て定数係数となりlogとるとただの定数となってしまうので関係ないのである。よくできている。そう思ってこれは意外にちゃんとしたプランク定数がでるのでは、と思って学校に来たところにこんなことを言われても困る。

それで、結局わからずに試問に行ったら、そんなことは何も聞かれずに知識をたくさん問われた。

それがまた、可視光領域はどのへんだ、とか可視光より短波長の光と長波長の光を挙げろ、とかそんなんばっか。

で、最後に、で結局何が結果が小さめにでる原因なのか問い詰めたのである。が...

2003/11/27(木) ペンケース
この前買った筆箱がなかなか良い。なんと、安定して直立し、筆立てにもなるのである。絶妙な場所に消しゴムポケットがついている。これはラッキー。

2003/11/26(水) リアリー?
今物凄い可能性に気が付いた。

ひょっとして、蜜月ってハネムーンの直訳?

英辞郎を引いたら綴りはhoneymoon。まじっぽい。ひょっとしてトリビアもの?

ちなみに語源(3)曰く「最初甘かった二人の関係も月がかけていくようにだんだんと薄らいでいくものだから」

2003/11/25(火) オッデーン
私は学びの方法を勝手に決めようとする姿勢が嫌いだ。選択授業や少人数のゼミならそのコースそのものが学びの方法を提供するということに当然なるが、大人数の授業や必修の授業は情報の提供に徹するべきだと思うのである。

昔から、生徒を当てて答えさせる、あるいは黒板で解答を書かせるという行為の必要性が全く理解できない。これは小学校ではじめて授業というものを体験した時から漠然と感じていたことだ。―ここでは学んだ、という歴史を作ることしか行われていない。学びそのものは重視されていない―子供心にそう感じていた。

それでも中学校程度までは、自主的に学ぶという行為がまだきちんと形成されていないから、このような授業中心の学びのスタイルは必要だったかもしれない。

しかし高校、大学と進んでいけば、学びというものは自分で行うものとなり、授業は補助的な役割しか果たさなくなる。特にこの過程で生活において学びはそれほど重要なものではなくなってくる。学ばせたい物を学ばせるという形は学びたい物を学ぶという形にとって変わられるのだ。

そういうわけだから、授業や教科書が勝手に学びの方法を指定することには我慢がならない。それを売りにしている授業、教科書ならともかく、ごく普通の内容の教科書にとってつけたような方針が付与されているとその価値は果てしなく減じられる。

つまり、何を言いたいかというとね。韓国語の教科書で第12課までは新出単語のリストが「ハングル 日本語」の形で出ていたのだけれど13課から「ハングル (ご丁寧に空白)」となっていて、予め自分で調べて書き込んでから授業に出ましょう、ってなっているのですよ。

なめとんのかこら。





おかげで小テスト前の一夜漬けにかかる時間が1.5倍になったじゃないか(言いたいのはこれ(死泣))。

2003/11/24(月) コーールドデーーーーイ
寒い。寒い。誰か助けて。
--------------------------
そもそも学校の図書館の電子ジャーナル閲覧のサービスを利用する機会はあまりないのだが、たまにふらついてみるときにはcygwinの環境で学校にloginし、mozillaを立ち上げていた。いくらなんでもこれは大変である。

でろでろ氏がポートフォワーディングか何かを使って電子ジャーナル閲覧の環境を整えたっぽい記述をしていたので、こちらも試してみた。

だいたいなんで今までこれをしなかったのかといえば、プロキシの切り替えが面倒だからだったのだが、考えて見たらDonutPにはプロキシを切り替えるリストボックスがステータスバーにくっついているのである。そこで、localhostをプロキシリストに加え、TTSSH用のas30x.ecc.u-tokyo.ac.jpに接続するための設定ファイルにssl.ecc.u-tokyo.ac.jpへのフォワーディングの設定を追加した。するといともかんたんに学内用ページが見れるようになった。こりゃー楽だ。

しかしこうなるとさすがに気になるのが、5分ほど未入力で放っておくと学校への接続が切れる(入力を受け付けなくなる)こと。cygwinからsloginしても、TTSSHでもそうなる。タイムアウト処理のたぐいでもないようだし謎だ。

2003/11/22(土) ハイライトジューキュー
学校のサーバで動かしてXFree86で表示させてみたら結構まとも。

ついでに四苦八苦してjavaでhilit19させることに成功。人のファイルつかっただけだけどね。

さらについでにカーソルを物理行単位で動かせるモードの.elファイルを発見。

嬉しかったのでスクリーンショットを撮ったが、うちのサーバは画像ファイルに外部からリンクできないので、アプレットページについでにおいておいた。低速回線の人ごめん。

http://f18.aaacafe.ne.jp/~ruke/NijuHuriko/NijuHuriko.htm
-------------------------------------
http://www.geocities.jp/judo3matsu/xyzzyLispJava/
http://www.asahi-net.or.jp/~dp8t-asm/java/tools/SmartMake/index_ja.html
こんな程度ならEmacs,XYZZYで共通にできそうだ。

ただ、オブジェクトツリーを解析して入力補完してくれるのは、せっかくのオブジェクト指向なんだから絶対欲しい。

そうそう、文章書くのにアウトラインエディタを便利に使っているのだけど、これ、ほとんどがリッチテキストエディットコントロールを使っていてしょぼい。XYZZYにはアウトライン表示のプラグインがあるらしいが、Emacsで似たようなことができないかな。まあ、文章書きはWindows機がほとんどだろうからいいか。
-----------------------------------------
筆箱置いてきた教室行ったらバンドががんがんにライブやっていて、筆箱は見つからなかった。

結局東急ハンズまで行って揃えることに。ちょっと特殊な色のボールペンを愛用しているので、文房具屋だと揃わないのだ。文具って一気に揃えると結構高くつくよな…。

僕はかなり道具から入る系の人間で、筆記具についてもかなり試行錯誤している。とはいってもお金をかける懲り方ではないけれど。色付きボールペンは発色が鮮やかなものではなく、*ブラックといった色を使うことにしているし、全てのボールペンは水性ゲルインキにしている。本当に革命的なほどに書きやすい。

今回前回のセットと変えた点はシャープペンシルを試しにサイドノック式にしたこと。どちらが使いやすいのか、しばらく試して見ようと思う。

ところで筆箱というペンケースの類、どこでもまともな製品がない気がする。こればっかりは毎度毎度さんざん悩んだ末に容量だけで決定している。
-------------------------------
今日の駒場祭は午前中店番したあと、渋谷に行って筆記具を揃えた後、知人をひやかしながらぶらついたのだが、誰もが食べ物屋で働きっぱなしで、しかもみんなお好み焼きか豚汁で、ひたすら食べてけ食べてけといわれた。

しかし最近僕はかなり小食になっていて、渋谷に行ったついでにサーモンタルタル丼を食したら既にお腹一杯になってしまった。ちなみにこれは渋谷に最近できた海鮮丼もののファーストフードっぽい(牛丼屋に近いスタイル)店で、あんまり格別に当たりって印象はなかったのだけれど、このサーモンタルタル丼は490円という値段を考えると悪くない味だった。生協食堂で海鮮丼(という名前のいくら丼)が500円することを考えると…、ね。

昔だったらお好み焼きなどおやつ代わりにいくらでも食べれたのに人間の体って現金なもので、あまり食べなくなると食への情熱も冷める。

だいたい歩いて3分のところにおいしいたこ焼き12個300円の店があるんだし…などと思考が冷徹になるものだ。

高校のころ、全品制覇などという馬鹿げたことをもくろんで、クレープの種類の多さに挫折したのが懐かしい思い出である。

でも明日は、おいしそうなので餃子ドッグは食べよう。あと、兄が所属しているサークルのお好み焼きのチケットを買わされたので、処理しなければ。

2003/11/21(金) クミョー
11:30に携帯のアラームをセットして、携帯のアラームが鳴ったのでおきたら6:30だった。メールの着信音だと思って寝直したのだけど、ふと気付いたら12:30になっていた。

駒場祭の準備の手伝いに学校に行ったら、もうあらかた終わってた。

とはいえもう一つ、Javaプログラムの学校の環境での動作を確かめるという目的もあったので情報棟に行ってみたら休館。まあだいたい予想はしてたけど。

時間があったので、本屋に行って本を数冊買ってきた。
---------------------------------------
GUIを装備したぜい。
http://f18.aaacafe.ne.jp/~ruke/NijuHuriko/NijuHuriko.htm
http://f18.aaacafe.ne.jp/~ruke/NijuHuriko/NijuHuriko.java

ほとんど意味がなくなったAppletWithThreadを消して、直接Appletを使ったりと、だいぶ見通しのよいコードになったけれど、GUIの作成部分が長い長い。もう少しどうにかならないものか。

GUIの構築にはVBのようなRADツールが便利そうに見える。だけれどこのような方法は、ウインドウの大きさを可変にしたい状況では全く無意味となる。

結局の所GUIの構築といえどコードを手書きしなければいけないのは確かだ。

だけどやっぱり、これじゃ野暮ったすぎるな…。

なんだかSWINGが面白そうなのでそのうち手を出してみようかと思うが、これは玩具以上のものにはなりそうもない。

あと、CにしろJAVAにしろやはり統合開発環境が欲しくなってきた。いつのまにかEclipseなんていう面白そうな物も出ている。
http://www.eclipse.org/

しかしそんなことよりも今最優先の課題はいいかげんにmakeファイルについての知識を得るべきだ、ということだな…。なぜかずっと避けてきているけれど本来は最も基本的な知識のはずだし。でもなんか嫌いなんだよな…。

今まで、学生はただで使えるのに惹かれてEmEditorを使ってきたが、好き嫌い以前に、Emacsの自動インデントに全て統一したいので、XYZZYを検討中。ちょっと使って見たけれどなかなかいい感じだ。ただドキュメントが信じられないほど少ない。本家Emacsと完全に何もかも同じというには程遠いようだ。これは完成度が低いというよりも、作者がもともとクローン的な位置付けをしていないためのようだが。しかし今更Meadowなんか使う気にもならんし。

え〜宣伝。文藝部も参加するミニコミ懇親会のテントは正門入ってロータリーの所で右に伸びている道がありますが、その付け根です。めっちゃ目立つ所です。
--------------------------------------
http://www1.odn.ne.jp/ymtz/jtc.html
http://jdee.sunsite.dk/
いろいろあるなあ。

2003/11/20(木) ラトドデラドン
わ〜い。今日はたくさんの疑問が氷解した。

1.notify(),wait()はObjectのメソッドである
いや〜スレッドのメソッドだと思ってはまってた。つまりこれは排他的にアクセスさせてもらっているObjectのものを使うわけだ。全てのObjectがロックの管理機構を持っているとは驚き。

というわけだから、モニタっていうのはsynchronized修飾したメソッド中ではthisで、synchronized(Object){}ブロックでは指定したObjectで、notify,waitはモニタのものを呼び出さないと確実に例外が起きるというわけか。やっとわかったぞ。

2.実はCanvasにはバックバッファ機構がある。
今までAppletのpaint()メソッドと計算スレッドの間でどうやって同期とろうかとさんざん悩んでいたのが馬鹿みたい。これでpaint()で重い計算をする、とかいうサンプルプログラム以外であり得ない書き方ともおさらば。

http://f18.aaacafe.ne.jp/~ruke/TDFH/TwoDegreeOfFreedomHuriko.htm
http://f18.aaacafe.ne.jp/~ruke/TDFH/TwoDegreeOfFreedomHuriko.java

まあ実行結果は全然かわらないし若干遅くなっているけれどコードがやっと理想的なコードになった。Java使うならこういう感じでコーディングしたいな〜、と思っていたことがだいたい全て実現できた感じだ。(とはいえまだ少し野暮ったく感じられる所が残っていて、それはどれも、たくさんの変数の代入処理だ。ここはHurikoConfigurationみたいなクラスでも作って簡素かしよう。)

それはつまり言語仕様が抽象的なレベルでは非常に合理的であるということだろう。

しかしドキュメントでは同じ意味と書かれている記述で速度が異なったり、GUIまわりで環境依存のところがあったり、ドキュメントからすらスレッドに関する自信の無さが漂ってくる辺りはちょっと悲しい。

とはいえこれは現在のPCのアーキテクチャが大昔からほとんど変わっていない所に無理やり巨大なOSがかぶせてあるからだろう。

GUIも、JAVA自体がグラッフィク機能を備えているのだからその上に構築すれば良さそうな物だが、それではパフォーマンスが低すぎるわけだ。

事実Swingはまさにその目的であるものであり、JAVAの上でのGUIとして非常に合理的に思えるにもかかわらず、まずこれに着いて語られるのは、遅い、ということだ。

やっぱり100% Pure Java PCが欲しいな。
------------------------------------
AppretViewerで「再起動」をすると画面に何も表れないようになっていた。

destroy()中でCanvasオブジェクトを破棄してやるとうまくいった。
------------------------------------
うわっ。いつのまにか駒場祭になってしまった。まだ11月上旬のつもりでいたのに…。

文芸部は静寂とNOISEを販売します。団体名は(6団体共同のため)ミニコミ懇親会となってますのでパンフレットとか見るときは間違えないでね。

JavaのGUIはWindowsネイテブのものと違って使って見る気にさせるなあ。でもレイアウトマネージャーは、あまり実用的な用途には使えない気が。でも、ウインドウサイズが変わった時に自動で処理してくれるのは捨てがたいから…というわけでGridBagLayoutを試し中。
-----------------------------------
はあ。筆箱学校に置いてきた。
その経緯がまぬけで。
階段教室で、筆箱を机から落としてしまった。それは一つ下の段の床に落ちた。
面倒だなと思った。
帰る準備を整えてから拾えば今いる段に登りなおす必要がなくなると思った。
拾うのを忘れて帰った。

ものぐさはいかん。

2003/11/19(水) フリコーノフリコ
まだ火曜日だけどスペースがなくなったので水曜の欄に。

http://f18.aaacafe.ne.jp/~ruke/TDFH/TwoDegreeOfFreedomHuriko.htm

実装すべき機能は全て実装できた。

drawImageがかなり遅い感じだったので、当初考えていた

SimpleImageでフェード処理---drawImage(createImage(new MemoryImageSource(SimpleImage)))>>>Graphicsで線とか円とか---drawImage>>>paint()の引数g

という流れをやめて、
SimpleImageで全て処理---drawImage(createImage(new MemoryImageSource(SimpleImage)))>>>paint()の引数g
とした。このため、重りの位置に円を描くのをあきらめたのだが、やっぱり欲しかったので結局SImpleImageに円を描く機能を追加してしまった。せっかくJavaが画像処理に関しては統一的かつ高度な設計を提供してくれているのだからSimpleImageはピクセル単位処理専用に使うつもりだったのだけれど、趣旨がずれてきた(汗)。

画像データの受け渡しが、ある意味動的な方法で実装されているのは
、Javaが扱うデータがネットワークに置かれている場合もあることを考えると確かに当然であるが、しかしやっぱりどうにかならないものか。

ついでに、学校の環境ではPixelGrabberが動かないぞ。grabPixels(10);等とタイムアウト時間を指定しても帰ってこない。う〜ん。

まあ、とりあえず後確かめるべきことはこのコードで、Unix環境でもまともに動作してくれるかということ。ちょっと不安。スレッド関係はある程度環境依存っぽいし。
-------------------------------
昨日の二つ目の項目は勘違いだったよう。

2003/11/18(火) ニジューフリコ
やっとここまでこぎつけた。スレッドあたりが自身ない。
http://f18.aaacafe.ne.jp/~ruke/TDFH/TwoDegreeOfFreedomHuriko.htm

ソース(SimpleImage関係はこれから使うようなので関係なかったり)
http://f18.aaacafe.ne.jp/~ruke/TDFH/TwoDegreeOfFreedomHuriko.java

実行にもコンパイルにもJAVA 2の環境がいります。
http://java.sun.com/j2se/1.4.1/ja/download.html
あたりからおとしてください。ブラウザでJAVA 2のアプレットを動かしたいだけの人は、各国語対応でWindows用のJREで十分です。

とゆうか私が今更になってやっとJAVA2の開発環境を入れたのですが。

ちなみに、DonutPとかのIEコンポーネントを使っているブラウザは、JAVA2 Plug-inを入れてもMicrosoftのJAVA VMを使い続けることがあります。私のドーナットもそうでした。このような場合、

regsvr32 /u msjava.dll

を"ファイル名を指定して直接実行"やコマンドプロンプトから行えばいいそうです。

こうするとインターネットオプションの詳細設定タブにJAVA(Sun)って項目が出てきます。私の場合上記の操作でこのチェックは入った状態になりましたが、入っていなければ入れましょう。

その項目のすぐ下にMicrosoft JAVA VMの項目がありますが、SunのPlug-inが優先されます。

これで逆にMicrosoft JAVA VMが使えなくなりますが、ど〜しても元に戻したければ、-uオプションを抜かして先程のコマンドを実行します。
--------------------------------------------------
この上に書いたのは昨日の内容だった。同じファイル名でアップロードしてあるので、現在の進行状況が同じurlから参照できたり。
とはいえ昨日のより見た目は悪くなっている。しかしやっとピクセル単位のエフェクトがけができるようになった。

自前の描画処理を入れたら物凄く遅くなった上に、スレッド間の不同期が原因とみられる不自然なちらつきが見られた。よくわからないままにいろいろいじっていて、とりあえずWindows環境では不自然でない(というかいろいろいじっていたら相当高速になった)ようにできた。

やったことは三つ。

一つはガベージコレクタに頼りまくって、
Canvas=FadeImage.clone();
みたいなことを毎ループごとやらせていたのだが(Canvas、FadeImageとも自作のSimpleImageクラスで画像を単なる配列として保持している)、これだとガベージコレクションのタイミングで猛烈な負荷がかかる(つまりゴミがたまりまくる)ので、copyメソッドを実装した。何しろ中身が単なる配列のクラスなので、これくらいはちゃんとやるべき、ということか。

もう一つはスレッド内で
try{
synchronized(this){
while(!getShouldExit() && getShouldSuspend()){
System.out.println("TDFH thread now suspending...");
wait();
}
}
}catch(InterruptedException e){}
とサスペンドフラグを見に行く部分で、synchronizedブロックを作るだけで物凄く遅くなるようだったので、ループ毎でなく一定時間ごとに見に行くことにした。

最後に、メインの処理を記述したメソッドをスレッドオブジェクト(こいつはAppletクラスの内部クラスにしてある)内に記述していたのだが、これをAppletクラスの内側に直接記述しpaint()から呼び出させるようにして、スレッドオブジェクトのrun()ではrepaint();するのみとした。

二つ目と三つ目は何で効果があるのかわからないのだが、とにかくかなりの効果があった。

特にいろいろいじっていて、repaint()は単なるupdate(Graphics)の呼び出し手続きのラッパではないような感じを受けた。どこかにイベント処理を行っているスレッドがあって、そこからpaint()が呼び出され、呼び出し元とは独立に処理が行われるようだ。このあたりのことが記述されているドキュメントを探したいところだ。

ところで今回スレッドに関してはアプレットクラスにimplements Runnableするというのが、ドキュメントにも出てくるしスレッドのサンプルも多くはこれを使っているけれど、なんだか急場しのぎに作られたっぽい手段のようで嫌な感じがしたので、Threadクラスを内部クラスとして作った。

この内部クラス内で、内部クラス自身を取得する目的でthisを使って見た所はねられた。それで調べて見ると
クラス名.this
と書くらしい。

これ、thisが自分。this.thisが自分を含んでいるクラス。って規定するのが素直じゃないだろうか。クラス名はオブジェクトじゃないだろう。

それで気になったのはこの内部クラス内で
synchronized(this)
が通ったということだ。しかも
synchronized(クラス名.this){
while(!getShouldExit() && getShouldSuspend()){
System.out.println("TDFH thread now suspending...");
wait();
}
}
と書くとモニタじゃないよん、みたいな感じの例外が発生する。thisを用いると大丈夫だ。
この辺りどうなっているのかよくわからない。

2003/11/16(日) アメーズドサープライズド
Softwareのページで公開している二重振り子プログラムをjavaに書き直してみているのだが、驚いた。今更間違い発見。

それも、座標に加速度を、速度に速度を足す、というかなりやばいクラスの間違い。

だけど見た目は全然おかしくなかったわけで…。何故だ?

まあ、束縛条件とエネルギーの保存だけで結構ものごと決まっちゃうと。

2003/11/15(土) キエサルヒトオオシ
たぶんそんな感じなのだろうと思って調べたら案の定AppletクラスはFrameクラスからの派生だった。なるほどなるほど。

そうすると、mainから自分自身のクラスのインスタンスを改めて生成するようにしておけば、アプレットプログラムをjavaできるのかな?今度やってみよう。

2003/11/14(金) ノロイノロイ
今日の実験は最悪だった。

担当教官が種目ごとにまとめて試問を行ったせいで、さんざん待たされて6時くらい。
そのうえ500Hzと100Hzを間違ってやり直し喰らった。やってられん。

実験は簡単だったのに。。。
--------------------------------------
生協の学生生活実態調査(だっけ?)の25人に一人のサンプラーに選出された(はっはっはっ)のだが、アンケートをほったらかしにしていたら前の火曜日に電話がかかってきた。別に協力するつもりがなくて放っておいたわけではなく単に忘れていただけなので、すぐに送ると言ったのだが、ついつい忘れていて今やっと記入した。でも今日出そうと明日出そうと明後日出そうと着く日は変わらないのだろうな。。。

2003/11/13(木) ドイッドイッ
ジッケンの予習を2時に始めるのはいい加減止めよう。今は翌日の朝4時。

というか、リサージュ図形でxとyの周期が等しい時に楕円になるのが何でだか、ってことでずっと悩んでた。いや別に求められてないんだけど、かんたんな説明があったはずでどうしても引っかかって考え続けてしまった。

なんてことはない。加法定理でxもyもAsin+Bcosの形になるから、sin,cosがxとyの一次式になって、1=xとyの二次式となるのだった。で、有界の二次曲線は楕円であると。しょーもな。

11月絵日記の続き


 Copyright ©2003 FC2 Inc. All Rights Reserved.