Thursday, December 21, 2006

Homepage::Update - scriptとnoscript

何気なく、携帯のOperaで私のWebサイトを閲覧してみたら、JavaScriptが全然働いていませんでした。 Operaだから動くやろーと思ったらそうでもありませんでした。

だもんで、JavaScriptを使ってコンテキストメニューを実現している箇所なんかは、リンク先に飛べなくなってしまうわけでして。それは困る(かもしれない)ので、noscriptタグを駆使してみました。noscriptの時にはliタグでリンクを表示するのはもちろん、JavaScriptが使えないとなると左サイドの装飾が表示されないので、デフォルトで殆どの文字のtext-alignをleftにします。そして、JavaScriptでこのtext-alignをrightに変更することで(他にも要素のクラス名を切り替えたりしていますが)、JavaScriptが使える環境では私の想定しているレイアウトへ復元させるようにしました。JavaScriptをOnにしているときとOffにしているときとでレイアウトが切り替わっています。ちょっとオモロイとか思いました。

Society::Death - 時折思い出されたあの人が

カンニングの竹山さんの相方、中島さんがお亡くなりになられたそうで、 今日の午前に竹山さんが記者会見するそうです(今現在の時刻は0時35分)。竹山さんをテレビで見ると、あぁ、相方さん入院してるんだっけ、と思い出していました。もうあの漫才を見ることはないんだなと思うと、少し寂しい気がします。にしても、お亡くなり直後、Wikipediaにはひどいことを書かれていたようですね。さすがに死んだ方にジョークふっかけるのはいかがなものかと。

Monday, December 18, 2006

Society::Hypocrite - 動物社会を見る偽善者

今日テレビで、動物社会から色々学びましょうみたいな番組をやっていまして、出鼻に、近頃人間はオカシイです、と司会のあの人が語り出しました。まぁ親子で殺人やっちゃうのはオカシくなってきてんのかなぁと同感ですが、いじめや格差社会をそれと並べるのはどうかと。弱肉強食なんてフツーやん、と思わずテレビにツッコミ。

さらにさらに、今の人間が、自然界に投げ出されたら生きていけませんよ、と専門家の発言。それに対してお昼に君臨する司会者、「実に情けないことです」とか言うわけですよ。じゃあ逆に野生動物を人間社会に連れてきて、奴らは生きることができるんか?って話。それぞれの社会に適合して生きてるんだから、人間が人間社会以外で暮らしていけなくても情けなくなんかはないと思いますが。

どうも人間の物差しで動物の生活を見てコメントしているように思え、てめぇらの発言全部偽善者ぽくて気持ち悪いんだよ、と最後にツッコミ。動物の物差しで人間を見てみたらどうでしょうか。同じ種族の生き物が乱獲されて、監禁、殺戮、解体、捕食ですよ。あぁ、恐ろしい奴らですね。スーパーミルクちゃんの大統領が宇宙人に遺伝子をコピーされ、宇宙人社会でクローンの大量生成と大統領の食品加工の映像が思い出されます(大統領の頭のこぶが美味しい美味しいと、宇宙人にはうけていましたね)。

最近のいじめや殺人事件なんかを、動物社会を見習って是正していきましょうっていうノリだったんでしょうか。アホか、の一言で終・了・です。

Friday, December 15, 2006

Programming::JavaScript - ドキュメント生成

Doxygenのように、ソースコードにつけられたコメントからドキュメントを自動生成できれば楽なんで、JavaScript向けのドキュメント生成ツールJSDocを使ってみようと思っていました。phpDocumentorやJavaDocなどと似たような記法ができるので、さらっとJSDocのマニュアルを読んで、ソースコードにドキュメントをつけていきました。

で、昨日いざ生成してみようと思ったら。まったくドキュメントが生成されません。まったくというか、少しは生成されたのですが、こちらの意図したとおりに動いてくれてなかったようです。例えば、JSDocが期待するクラスの宣言は、

function MyClass(arg) { ... }

な訳で、方や私が用いた記法は

// prototype.jsを利用しながら
var MyClass = Class.create();
MyClass.prototype = {
initialize : function(arg) {...},
...
};
です。どうもPerlの正規表現を用いてコメントの抽出などを行っているようで、おそらく"クラス名.prototype = "が来ればクラス宣言だ、というのは無いのかもしれません(そんなにじっくり見ていないのでわかりませんが)。

きちんとドキュメント生成してほしいがために、ソースコードをドキュメント生成に適した書き方に書き換えるのは面倒です。ので、JSDocを使うことは諦めました。

Perlコードのドキュメント生成にはpod2htmlとかを使っていたので、仕方なくpodファイルを作っていくことにしました。podファイルで在れば、極端な話(?)ソースコードが無くてもドキュメント生成できますし。doxygenとかは無いとやりづらそう。まぁ、JavaScriptコード中にへたっぴな英語でコメント付けてたので、日本語に直す予定ではありましたから、podファイルをモリモリ作っていこうかと思います。

Thursday, December 14, 2006

Life::Favorite - 今、やりたいこと

あんまりにも時間がないので、睡眠時間を少なくても大丈夫な体へ、徐々にならしつつある今日この頃ですが。まぁ以前なら8時間は寝ないと徐々に疲労が蓄積されていったのですが、最近のちょっとだけ改善された食生活、生活リズム、そして禁欲(性欲の方)のおかげで体力、気力ともなかなかどうして回復しやすく、睡眠時間を削ってもある程度大丈夫になりました。しかしながら、睡眠時間が減るイコール老化?とか考えてしまう私は少し不安になったりも。一番大きいのは禁欲かなぁって気はします。抜くと次の日の朝非常に頭と体がマッタリして、スイッチはいるのに時間がかかるんですよね。故に起きれず、起きたとしても頭はぼーっとしている。

とまぁ最近割と元気に過ごせていて、周りは風邪をこじらし散らしているにも関わらず鼻水やくしゃみなんて割と無縁。あぁ、風邪で声がおかしくなってる人が多いんだな、今の時期とか思いながら、金を稼ぐことを考えて過ごしていたり。

そもそもやりたい事、やるべき事が多すぎて、体が調度良い程度にプレッシャーがかかって元気なのかも。プレッシャー皆無になると風邪ひきやすいんですよね。やりたい事、やるべき事といいますと、
  • 午前中はレストランのキッチンキャストのバイト
  • 昼間は自分の研究
  • 企業研究(就職活動)
  • ゼミで使う発表資料の作成
  • 講義のレポート課題
  • 夕方から家庭教師
  • 夜からソフトウェア開発のバイト
  • 寝る前の風呂
  • 英語の勉強
  • Web2.0を意識した(笑)JavaScript製ユーザインタフェースライブラリMKFの開発
  • さらに言えばCODE COMPLETEとか技術書読む(Binary Hacksも買って読みたい)
  • バイクへ自作ウインカーICの取り付け
まぁバイトが三つ同時にやってくるのは稀なんですが、上のを一日でこなすとなると…一つに一時間かければいいとこですネ。バイト二つ入れば6時間から10時間ほど潰れるので…あーなんだか一日48時間あっても有意義に使えそうな気がする。前は、自分が二人いたらなーとか思いましたが、最近三人いたらなーとか思います。

Monday, December 11, 2006

Life::Health - 頻発発射

最近よくおならが出ます。健康な証拠?と思っていたのですが、なんか心配になって調べてみるとこちら

す、ストレス貯まるとおなら出るんかっ。最近は飲酒はめっぽう減りました。お酒のむと、風呂入ったとき、体に負担が掛かります。それに次の日のことを考えると、飲まずに寝た方が体力の回復が良いような気がするからです。

まぁPDA(私のはGENIO e350)が無いとやりくりしていけないような生活になっちゃってるんで、知らず知らずのうちにストレスを感じているのかも知れません。何でPDAやねんといいますと、スケジューラがリッチだから、というのが一番。二番目にWindows Media Playerが使えるから、という点です。手帳でいいやん、と突っ込まれたりもしますが、手帳よりも再編集しやすく、見やすく、一杯書き込める。ただ予定を書き込めるだけよりも、使い勝手が格段にいいですからね。

しかしまぁ、明日の予定はなんだったっけ?と言いながら、PDAを見ないとスケジュールがわからないほどカツカツにしてるわけですから、ストレスっていえばストレスなのかもしれません。

Laboratory::Member - 後輩と精神的病

よく私の家で飲む後輩は、現在精神安定剤や睡眠剤を服用しています。精神的に病んでる、ってことなのでしょう。以前も一時ヤバイ雰囲気を醸し出してて、話しかけるのもはばかられる程でした。普段はそんな印象全くないのですけどね。

この子はしょっちゅう、自分の生活リズムと夢の話をしてきます。たまに聞く分には全然気になりませんが、しょっちゅうなので段々聞くのが面倒になってきます。大方、不規則なリズムで妙な夢だね、で終了しますから、話は広がりませんし興味もありませんし。大学生で不規則な生活送ってる人なんて全然珍しくないですし、夢なんて言っても妄想ですし。私は心理学者じゃないので、夢の話を聞いてもそうなんだ、しか言い返せません。

病んでいると、理解を求めたりして、癒す機会を探すのかも知れません。高校の頃の同級生は、違う大学に行っていますが、彼も鬱病になった様子で、私にあれこれと自分の現状を説明するようなメールや日記を読む事を求めてきました。私には彼を救うことが出来ないと思って、ひどいかも知れませんが適当にあしらいました。私は高校の頃に、なんと言いますか、倦怠感まみれになった時期があり、しんどいやらめんどいやら夢の話やらがよく口から出ていました。あれと同じ心境なのかなぁと思ったりもしますが。彼らの場合、もっとひどい者なのかも知れませんけど。

はなから後輩の言うことを流してるわけではなく、やる気が起きないならアレしてみたら?とかコレしてみたら?とか提案してあげたりはします。が、私にとってやる気の出るものでも、彼にとってはそれが出るものだとは限りませんし。一応私にとってやるだけのことはしてみましたが。結局は自分ですもんね。早く復活してくださいと願います。

Saturday, December 09, 2006

Laboratory::Aims - 目標探し

現状の課題を探し、研究テーマを決め、研究し、論文を書く。この繰り返しな生活を、大学院で送るわけで、今日も現状の課題と研究テーマ決めのため、うむむと頭を悩ましてきました。しかし、感性情報処理だとやはり、これが現状の課題だ!としっくりくるのがなかなかなくて、新規性の事ばかり考えてしまいます。あ、多分これ誰もやってないかも、と思っても、すでにやられていたり、やられていなくても、何の役に立つねん?という話になってしまいます。

まだまだ知識不足なんだろうなぁという気がして仕方なく、就職のことを考えてしまいます。就職すれば、もっと今の世の中の問題点が見えてくるはずだ、と。一方で、もっと文献を読みあされば、それはそれで問題点が見えてくるかも知れず、当初の予定通り進学すべきだったと思うようになるのかも知れない。そう思うところもあるので、悩み続ける日がまだまだ続きそうです。

Homepage::Update - 久しぶりのリニューアル

そろそろ飽きてきたり、DynamicHTMLを覚えたり、デザインのことを少し勉強したりと、諸事情によりトップページをリニューアルしました。今回は、画像を使わずにどんなデザインで表現できるか?というのをテーマにしてみました。矩形は簡単に表現できますが、斜めのラインや楕円、三角形などは表現できませんね...何か上手いやり方が在るのかも知れませんが。

トップページ上に情報をモリモリ書きたくなかったので、どこがポイントやな?って話になりますが、左サイドの装飾と、左クリックによるポップアップメニュー、そしてそれらにかけられる影のエフェクトでしょうか。プログラム的には、裏でクラスの継承やらをちょっといい感じに自前で実装してたりします。サブクラスのコンストラクタ内で
this._super();

とやれば、スーパークラスのコンストラクタが呼ばれるようにしています。継承するたびに、各スーパークラスのコンストラクタを保存していき、_superで正しいコンストラクタを呼び出せるようにしないといけない箇所がちょっと大変でしたが。

つまり、クラスAのスーパークラスがBで、BのスーパークラスがCだとしておきますと。
// prototype.jsのClass.create()使っているのでinitialize
B.prototype["_super"] = C.prototype.initialize;

として置き、B.prototype.initialize内で
this._super();

を呼ぶとします。Bを継承してAを定義したときに、
A.prototype["_super"] = B.prototype.initialize

として、A.prototype.initialize内で
this._super(); // これはB.prototype.initializeだが...

を呼びます。B.prototype.initialize内でもthis._super()を呼んでいるわけですが、この_superはA.prototype._superの事になってしまっているので、再びB.prototype.initializeを呼んでしまい...無限ループになります。

これを回避するために、FunctionクラスのtoStringメソッドでソースへ落とし込み、_super()を_super0()というように重複しないように書き換えます。もちろん、B.prototype["_super"]にクラスCのコンストラクタを代入するのではなく、
B.prototype["_super"+B.__INHERITANCE_NUMBER] = C.prototype.initialize;
// B.__INHERITANCE_NUMBER = 0

としてやります。この__INHERITANCE_NUMBERは継承回数-1としておき、継承を行うたびにカウントアップしていけば、_superが書き換えられずにきちんと保存されているように見えます。

ソースコードへ落とし込んだ後、Firefoxではeval()してやれば関数オブジェクトを返してくれたのですが、IEでは何も返してくれません。だもんで、無名関数を定義して、そのなかで上記のthis._super0の中身を実行するようなevalを書いてやらなければなりませんでした。この無名関数を、B.prototype["_super0"]に代入してやればOKです。

スーパークラスが何かが分かっているんだから、いちいち_superを自動で定義してやらなくても、手で書けばいいじゃないか、という話になるのですが、こっちの方がエレガントかなぁとか思いまして(笑)変数(名)がクラス(名)のように扱われるので、
var D = C;

とやれば、C言語でいうtypedefが簡単に出来てしまいます。ので、スーパークラスのコンストラクタ呼び出しも、上記のようにスーパークラスに別名をつけるような処理を行っておけば、長いクラス名でも手で打つのは全然面倒ではありません。

まぁ、あくまで自己満足と勉強のためにわざわざ、スーパークラスへのアクセスキーワードを定義したりしているわけです。JScriptだったらsuperキーワードが定義されていたような気も。

ちなみに現在は、スーパークラスのコンストラクタ呼び出し以外にも、スーパークラスのメソッド呼び出しも可能にしたいとか思っておりまして。overrideしたメソッドから、overrideされた元々のメソッドを呼びたい時に、Perlみたく、$obj->SUPER::method()と書きたいわけでして。Firefoxだったら動くのにIEだと動かない!という状況に再び遭遇したので、もう少しこの問題と格闘しそうです。

Friday, December 01, 2006

Programming::WebApplication - JavaScript UI Libraryたち

バイト先で重宝しているprototype.js。コレなどを用いるとクロスブラウザなJavaScriptコードが書きやすく、リッチなユーザインターフェースを実現することも割と容易になってきます。

現在サイトのトップページをリニューアルしようと思って、ついでにちょっとだけJavaScriptによるリッチユーザインターフェースライブラリでも作ろうと思い、作り始めました。と、その前に、今ユーザインターフェースライブラリはどれくらい在るんだろうと思って調べてみると。こちらにリンクがまとめてあり、参考になりました(あるSEのつぶやき - Ajaxライブラリまとめ)。まだまだ日本製は少ないわけですが、それにしても豪華な演出をするライブラリがたくさんありますね。ま、正直それはやりすぎでうざいな、っていうのも在るわけですが、そこんとこは好みの問題。あまりネイティブGUIアプリケーションのようなインターフェースに近づきすぎるのもいかがなものかと私は思ったりします。が、ものによっては便利ですよね。今バイト先で作っている事務的なWebアプリなんかだと、こういうリッチインターフェースだと操作性が良くなったりしますし。

別にこれらに対抗しようというわけではありませんが、勉強がてら、私好みの演出が出来る、軽量なユーザインターフェースライブラリを作っていきたいと考えています。ちなみに今できているのは、
  • Windowクラス(MKF.Window)
  • ContextMenuクラス(MKF.Window.ContextMenu)
    • MKF.Windowを継承
  • Timerクラス(MKF.Timer)
    • 有限時間内で一定間隔に任意の関数を実行するオブジェクト指向タイマー
  • 画面効果クラス(MKF.Effect)
    • 任意のDOMオブジェクトの透過度を変化させることにより、フェードイン、アウトさせる
MKF.Window.ContextMenuを要素に関連づけて、その要素上でクリックしたら作製したコンテキストメニューを表示させる。この処理ができて、トップページのレイアウトを少し変更したら、トップページを差し替えようかなとか思います。

Friday, November 24, 2006

Laboratory::Aims - 目的が無いと死んでしまう人

常日頃からあまりイライラして心臓がどきどきすることなく、むしろ常に低血圧なんじゃなかろうかというくらい穏やかな心拍が、何だか激しくなった今夜。研究での目的がわからなくなり、就職すべきかどうかもわからない状態になり。具体的な目的が無くなった状態ってのはこんなに胸の内が気持ち悪いものなのか!と一人で騒いでしまいました。

今日は朝から夕方まで研究室のゼミでした。午前中はすごく、中身が薄い報告会。午後は、今度開催されるシンポジウムの軽いリハーサルでした。

研究目的を見失ったんですよ、とほのめかしたいなぁと思いながら書いた報告書なのですが。私が書いた内容と、調べたけど書かなかった内容を口頭でしゃべる助教授。もうすでにある技術なんだから、早く論文書いて他の研究者と交流持ちなよ、みたいな事を言われました。あの、私の報告書読みました?絶対読んでないでしょー…字数下限与えておきながらこれだもんなぁ。っていうか、1000字越の報告書を、私が簡単に行った口頭報告30秒の間に読めるんですか?事前に報告書を集めて、目を通して、あれこれ議論するのが良いような気がするんですが。多分アレでしょうね、実験結果の図や表以外は見ないんでしょうねきっと。報告する人数が半端ないですし。

なんなんでしょうね、具体的な目標が定まってない中、論文書け書け言うのって。なんも結果出せてねっつーの。(大規模な)システム作れだのプロジェクト立ち上げろだの。報告会でさらりと言うだけ。あとは放置。時々進捗を聞くだけ。そうとうリーダーシップきれないと、学生時分にすすめられないんじゃないでしょか。ただでさえ留学生が多いってのに。

午後からのリハもねぇ。昨日まで、今日結局何をするのかメールから読みとれなかったわけですよ。どうも私だけじゃなく、多くの人がそうだったっぽいんですが。私が助教授と目が合ってしまったんで、「ホントに今日やるのかわからなかった」と答えたら、「メールに書いてあることを信じないのか」とか言われました。いや、教授の日本語が理解しにくかったからのような気が。教授は外国の方だから、辛抱するしかないのかもしれませんけど。ドクターの先輩も、午後からちょっとテンパってましたよ。ドクターの先輩でさえあれなんですから、メールの内容に何かしら問題があったと思ってくださいよねぇ。説教なんて垂れないでくださいよ、教授。

なんか、もうヤダなーここ。とか思いながら、夕方まで過ごしつつ。ソフト開発のバイト先じゃあ社長は、今のシステムが出来て、軌道に乗りそうだったら東京へ拠点を替えて、新たに人をを雇うようなこと言ってたし。

それからやたら胸がむかむかして落ち着きがなくなってきて。目的を見失ってしまったかのような感覚に陥りました。目的が無くなると、どうも駄目のようです。前は前で、すごく忙しかった日々が終わった途端、急に全てのやる気がなくなりましたし。

これはいよいよ本腰入れて就職活動始めないといけないのかもしれません。このままあの研究室にいても、何にも見えてこないような気もします。見えてくるかも知れませんが。

Thursday, November 23, 2006

Laboratory::NestOfFools - ある意味終わっているのか(2)

感性情報処理の目的を見いだせないだけで、研究者になることを迷っているわけではなかったりします。本当に、この研究室、というかこの大学に居すわって、実力が伴うのか、という不安があります。教授は学生をほったらかしですし、講義も毎週やるのかと思えば集中講義。論文の書き方や研究の姿勢を大まかに話をするだけで、個人個人には事細かなアドバイスはなし。個人プレーか、研究室内でいくつか存在するグループ内のメンバーで勝手に頑張れ、ということなのでしょうか。大学はそういうものだ、というのが答えだとすれば、私はこの研究室には居たいとは思いません。居ても無意味な気がします。そう感じるということは、就職を選ぶべきなのかも知れません。私自身が、研究職を望んでないのかも知れません。まぁ以前も書きましたが、実装屋さんのほうが楽しそうな気がします。

本数を要求される投稿論文数、雑務で忙しい教授陣、秩序がいい加減な研究室。実力を身につけ、実を結び、結果を社会に返していく、ということをやらないのか!?ここ数ヶ月、論文の序論を書くための情報収集の結果、この考えに行き着いてしまいました。教授はやたらめったら研究室メンバーを増やします。そのせいで、学生の研究を見ることが出来ず、適当に報告させて、OK、OKで流してんじゃないのか?学部生のころも、これといって研究について指導を受けた記憶があまりないんですよね。もう私の自由っていう感じで。それはそれで良いと考えていましたが、それじゃあ此処にいる意味がないだろう、と。教授も助教授も、感性情報処理の人じゃないのに、何で私は此処に居るんだろうとも思うようになってきましたし。

可能性を切り捨て、私自身本質が見えてないだけかも知れませんが、研究室にがっかり感を覚えてきていたりします。学費返せと言いたい。学費イコール研究室在室費ですか。ふざけんなと。ちゃんと講義しろ、と。教授らももっと研究室に参加してくださいよ、と。学費の分はこちら側が対価たるものを受け取れるようにして欲しいです。どこそこの、誰々という教授の研究室の者です、と名乗れるのが、数十万もする学費の対価なのでしょうか。バカすぎます。

ドクターに進むと周りに言っていましたが、来年の年末あたりに、突如、就職するといってやろうかとか企んでいます。就職決まれば、の話ですが。

Laboratory::NestOfFools - ある意味終わっているのか(1)

ここ数ヶ月、悩みながら、答えを出せずにいる状態です。何にか、と言いますといわば進路について、ですが。学部生の頃から、ドクターに進んで研究者になるんや!と決めていましたが、近況を見て、それはどうなんだろうと思うようになってきました。

まず研究内容の目的が論文に書けない、という事態。論文が書けないという事に繋がってしまい、感性情報処理に対する意欲が削がれていってしまいました。私は、人が発するもの(テキストや音声など)から、発信者の感情を推定するための手法を研究をやっていまして。それに対する研究意欲はもちろんありますが、その技術がいったい何の役に立つのか、というストーリーをなかなか作れずにいました。助教授が以前、ちらっと提案してくれたのですが、何故か私にはしっくりきませんでした。感性情報処理を用いて、人の感情を操作する、という話で、よからぬ感情状態(怒りや鬱など)から良い状態へともっていくというもの。人でも難しいのに、そんなこと出来るでしょうか?というかコンピューターにそなことをやらすというのが、私の中でどこか許せないものがあったのかもしれません。人任せならぬ計算機任せかよ、と。あ、でも人でも難しいことを、計算機はやってのけることが出来る、というものがありますね。人には見えないものを観測、計測できますし、人より早く計算が出来る。ただし、感情を推定するとなると、人より精度よく、相手の感情を推定するとなると、人と同じマネをしているだけではとうてい無理でしょう。私の研究で作った手法は、思い切った言い方をすれば、私自身の判断基準をコンピュータにコピーするようなものです。結局は、私の手法では、感情推定精度は私未満ということになります。あぁ、一体なんの役に立つのでしょうか。感情的にものを評価しているブログや掲示板のテキストデータから、そのものに対する世間的評価でも抽出する手法を作りましょうか。しかし、すでにもう存在しているようですし(こことか)。

教授が、何を目指して感性情報処理を研究室内で研究させているのかを知りたかったのですが、結局はロボットに感情を理解させ、生成させるのが目的のようで。出来たらすごいですが、ホントに必要かどうかは微妙な線です。おもちゃに応用される程度で終わるかも?と思ってしまいます。感情を持ったマシンなんて、あったら邪魔かもしれません。キーを打ち込んでいるのに、気分が悪いから受け付けてくれない、なんてことが。そんなことしないにしても、こちらの感情を理解しようとして、あれこれやられてもウザイだけかもしれません。勘に障るだけかもしれません。

テキストなどの電子的なデータに落とされたものを使うよりも、物理的なデータを使う方が良いかもしれないと最近思います。そのことを考えると、音声データを用いた感性情報処理なんてよさげだと思ったりしますが。

Wednesday, November 22, 2006

Programming::GivingMyHands - お助けプログラミング

サークルで知り合った友人に、在る処理を自動化するプログラムを作って欲しいと頼まれました。Wavelet変換を複数の波形データファイルに適用して、別のファイルへ出力するっていうプログラムです。Wavelet変換を行うCソースはすでにあったので、Perlで任意のディレクトリを参照して、その中にあるファイルを次々と見て変換処理を施してしまえば終いです。

このプログラム、コンソールアプリになるわけですが、ついでだからということでGUIバージョンも作ってあげました。その友人のマシンにはVC++6.0が入っていたのですが、私としてはGUIアプリを作るならVC# Express Editionでやりたかったので、友人のマシンにインストールして作業させてもらいました。そのプログラム自体は、単にグラフィカルなインターフェースでパラメータを取得し、外部プロセス生成して終いなので、これもそんなに時間がかかりませんでした。

これだけの作業で、明日居酒屋でおごってあげると言ってくれ、こっちとしてはなんか悪いなー、っていう感じなわけですが。プログラミングして人の役に立てたっていうのは、何だか気持ちがいいもんだなと感じました。研究の場合、論文書いて、人の役に立った!と実感できるまでっていうのはずいぶん道程がながそうなんですよね…理論家さんよりか、実装屋さんの方が面白いんじゃないかと思う今日この頃です。

Tuesday, November 14, 2006

Society::School - 校長の会見

最近いじめ問題やら履修問題やらで小から高等学校までの生徒、教師がよくニュースに出ていますね。前々から違和感があり、最近の報道や生徒の声をテレビで聞いて納得がいきました。何で校長が出てきてそんなこと言えるねん、と。

あの子はこんなだった、こうだった、とぺらぺら話すその学校の校長。小、中、高と、私の場合、校長とつながりなんてからっきしありませんでした。校長がどんな人だったかさえキワドイです。小学校の時、一時面白い校長が居たのは覚えていますが。

やっぱり学校の責任者だから校長が出てくるんでしょうね。校長に何が分かる、って話だと思うんですが。かといって教師は教師で、生徒の気持ちなんてわからずぎゃあぎゃあ言う人が居ますしね。あの人らぜんっぜんわかってない!というのが高校の頃の私の気持ちでした。フレンドリーなつもりだか、分かってあげてるよ的な気持ちからかわかりませんが、私にとっては傷つく言葉が飛んできてました。そんなことない先生も居ましたが。

学校は牢獄で、一定の学力水準まで満たした人間を排出する工場だ、と言った先生がいました。教師の言うセリフかよと思ったりしますが、未だにその通りだと思っています(高校までの学校は、ですが)。学校は、学校という閉じた社会なんじゃなかろうか、と思いますし(放課後になるまでは、出入り口を閉めて、頑張らないと脱出できない状況になってましたしね)。そう感じていたということは、高校レベルで大学に近い環境が欲しかったのかも、と思ったりします。大学での生活スタイルにはなんら不満ありませんし。

国がどういう風に対処してくれるのか、気になるところではあります(あんまし期待はしませんが)。

Sunday, November 12, 2006

Motorcycle::Customize - ICウインカーリレー作製

以前からウインカーリレーのIC化を計画していて、先週くらいに作製したウインカーリレー。上から見た図はこんな感じ(左)です。
右が裏から見た図です。
ハンダブリッジやまくりなわけですが、盛りすぎじゃなかろうかと思ってしまいます。

LEDには、無駄に青色発光ダイオードを使ってます。以前興味本位で買ったやつで、なんとなく使いたくなったので使ってみました。

最初の動作実験で、5Vの電圧をかけてみたのですが、なんかやたら点滅がはやいなぁ…と思い、次に12Vの電圧をかけてみたところ、目で確認できる点滅ではありませんでした。多分高速に点滅してるため、ほぼ点灯している状態に見えたのだと思います。

おっかしーなぁ、と思ったら、ICへの配線が一本足りませんでした。点滅の間隔を制御するための配線だったのでしょうか。繋げば正常に動作しました。

回路は完成したので、早速バイクにのせたいところですが、ケースをどうやって作ろうかな、というところでここしばらく悩んでいます。金属製にするなら、金属ばさみやドリルを買ってきて加工するしかないですし、アクリル版で作る方が安上がりですが、FETの放熱具合を考えると金属製の方が良いでしょうし。悩みつつも、金属ばさみとかの工具を、やっぱり買う方向になりそうな気がします。

Programming::JavaScript - 自前ウインドウライブラリ

Bloggerのベータ版に移行してみると、あれこれ変更が在るのに目がいきつつも、過去の投稿データが微妙に移行し切れていないのに歯がゆさを覚えつつあります。

それはそれとして、 ブラウザ上で仮想デスクトップを実現するeyeOSに大変感化された私は、どうにもこうにもブラウザ上でウインドウアプリケーションを実現したくてたまらなくなってきました。

探せばウインドウアプリケーションを作るためのJavaScriptライブラリはあるだろうと思ったのですが、今日探した限りでは特に見つからず。ZKはかなり良さそうだったのですが、Java Servletを使うんかい、と思ってあまりつかう気になれなくなってしまいました。

覚えることが大量に増えず、(サーバ、クライアント両方に対して)軽く、使いやすいものって…と思っているとなかなか見つからず。Drag And Dropに対応だとか、そういうなのはあるんですけどね、たくさん。

Prototype.jsがあれば、割と簡単に自前ウインドウライブラリは作れるんじゃなかろうか、と思い始め、本来の作業目的とはずれつつも、ライブラリ作成に没頭してしまいました。とりあえず、タイトルバーをドラッグすればウインドウもつられて移動し、ウインドウの表示、非表示、サイズと位置変更くらいは出来るようにしておきました。ウインドウの閉じるボタンとかもつけたいな、と、色々やりたいことは湧いてきます、ホント。

Thursday, November 09, 2006

Programming::WebApplication - AjaxFramework

Ajaxによる非同期通信ができるおかげで、Webページの動的更新がすごく良い感じに実現できます。Dynamic HTMLだけでも動的更新ができますが、Ajaxを使うことでサーバ上のリソースを利用できると言うことで、出来ることの幅が広がります。

できることの幅が広がったのは大きいのですが、やはり非同期通信+動的更新がすごくはまってしまい、CGIを使ったWebApplicationなんかはもう全部Ajaxを取り入れたらいいんじゃないかとか思ってしまうほどになってしまいました。実際、そうしてしまいたい気分で、過去に作った人工無能MINAやKaguyaなんかもAjaxを取り入れるとスムーズなチャットが出きるんじゃなかろうか、とか思ったりします。

海外じゃあAjaxを使ったものなんてわんさか在るみたいで、AjaxianというAjaxのポータルサイト的なものまで在りました。見てるとワクワクしてしまいます。

Ajaxを使ったアプリケーションを簡単に作れるように、色んなFrameworkもあるようで、Ajaxを使い始める前からバイト先で使っていたprototype.jsも、言えばその一つの様子。ブラウザにうよる違いを吸収してくれるのも大きな利点。XMLHttpRequestとかを標準化してしまえば、違いを吸収するライブラリを作らずに済み、色々面倒にならないわけですが。

Ajaxianを軽く眺めてみると、ライブラリや、コンポーネントレベルのものもあったり。Samba Clientまでありますね…大学の友人に、JavaScriptでAjax取り入れて、サーバ上のファイルを操作するファイラを作ってるんよとか言う話をキャッキャしてたのがアホみたいに思えてきます。Flashみたいな表現をするスライドショーもありますね…あぁもう何でもありですか。すごいです。

Flashで出来ることを何故にJavaScriptで?というのは、やはりプラグインがいるかいらないかというのと、開発環境が有償か無償か。あと色々あるかもしれませんが(開発スタイルの違いだとか)、ぱっとアピールするならこれらじゃないでしょうか。

Ajax取り入れて、DOMオブジェクト操作して、非同期かつ動的にページを更新するのってすげーとか思ってたら、バイト先での開発開始当初の知識の無さが悔やまれます。インラインフレームとか使わなくても、プログラムの出力を在る特定のブロック要素に文字列挿入するのとか簡単やん、あぁ、書き直してみたい、っていう気分ですから。今。

Wednesday, November 08, 2006

Laboratory::Work - 筋違いなのですか

めちゃくちゃな〆切を強いられ、作るのを要求された研究内容紹介ムービー。PDAのスケジューラとにらめっこした私は、まぁ間に合わないだろうと踏んで、自分の分の作成を放棄しました。まぁ研究室のメンバー全員が本当に作ってきたら、一人あたりの研究紹介時間なんてものは1分も無くなります。何だかこの紹介ムービーの作成も、教授が突如思い立ったかのようなタイミングかつ内容。まぁ教授はかなり忙しそうだから、仕方ないのかもしれませんが。

私は私でバイトが先週の木曜、金曜はガッツリ入っており、日も半日くらいはバイトでした。土曜は夜だけバイトだったので、作る時間がないこともなかったわけですが…休養を優先させてしまいました。

バイトで忙しかったから作りません、と先輩に話したら、「病み上がりや徹夜で頑張っている人がいるのに、申し訳ないと思わないのか。バイトが忙しくてやらないなんて筋違いだろ。」とか言われました。私はその言葉に全く納得が行かなかったので、相当上っ面に、すいません、と言いました。

あれですか、研究室の仕事を優先させて、バイト先に迷惑を掛けるのは筋が通ってるとおっしゃるのですか。へぇ。バイトだといっても、遊びでやってるわけじゃないんですし、それなりに責任もってやるべきでしょう。研究室とのかねあいもそりゃあありますが、筋違いっていうのは言い過ぎでしょう。

病み上がりで頑張ってる方は、ホントお疲れさまですと言いますが、病み上がりだから元気な私らが余計に頑張るべき、というのはちょっとどうかと思ったりします。悪い言い方ですが、病気になるほうが悪いんじゃないかと。病気になれば、何かしら、仕事が進まないとか、他人に迷惑がかかるおそれがあるんですから、健康に気を付けて当たり前でしょう。心配はしますが、そのことを引き合いに出されるのはいかがなものかと。

徹夜で頑張ってる人もいますが、徹夜しないと出来ないような仕事を要求する上の人が悪いわけで。起きている時間ずっと研究室におるわけやないんやぞ、と。

研究室にいられる時間数を削りざるを得ないスケジュールにしてしまった私自身も悪いんでしょうけどね。やる人がいるならその人がやればいい、っていうスタンスですので、なんかとやかく言われるのやだなーと感じてしまいます。それに何の報酬も無しにそこまで必至扱いてやるのもなぁ…と。以前研究室の人たちに、研究のためのアンケートを行ったときも、実は報酬があった、と話したときのリアクション。もっと真面目にやればよかった的な反応ですよ。どうせみんな報酬がなければ真面目にやらないくせして、都合の良いときだけ偽善者ぶんなよな!

…なんて先輩に対しては言えるわけありませんしね…どうしたもんでしょか。

Wednesday, November 01, 2006

Life::Lunch - 美味しいものを食べると

先日、今度は後輩を後ろに乗せて讃岐家まで昼ご飯を食べに行ってきました。二人とも海鮮丼を頼み、私のおごりでサザエの壺焼きを頼みました。正直サザエの壺焼きってこんなもんか、っていう感想でしたが(美味しかったですけどね)。海鮮丼は、やっぱり新鮮なお刺身だからでしょうか。甘みがありました。二人でうまい、うまいといいながらほおばり、一気に食べてしまいました。たれは醤油よりも薄目でおいしかったです。後輩曰く、お酒を足してある、とのこと。魚の味に気を取られて、だしの味にそこまで気を配っていませんでした。

食べ終わって、外で二人で缶コーヒーを飲みながらしゃべり、のんびり過ごしていました。久しぶりに、美味しいものを食べて満喫した気分に浸っていました。あー、世界中の人が美味しいもの食べてたら戦争なんか起こらんのに、とか変なことを考えていました。

家に帰ってきてからバイトに行っている間。やはり苦手ないくらを食べてしまったからでしょうか、どんどん気分が悪くなってきました。過去、長時間放置されたいくらを食べて吐いてしまったのが原因で、私はいくらが苦手です。まぁいいやと思って海鮮丼にのっていたいくらを一緒に食べちゃったのですが…吐きそうになってきました。何とかこらえましたけど。


何だか外食するのっていいなぁと思ってきて、近所にあるラーメン屋さんや中華料理屋さんに足を運ぶ回数が前より増えました。美味しいものを食べたいというのがまずありますが、味や盛りつけ方、厨房の様子、提供までの時間など、色々勉強したいとか思うのもあります。バイト代を、意図的に食費にあてるというのは今までやっていませんでしたが、こういうのもいいかなと近頃思います。