Thursday, December 28, 2006

Life::Music - 歌えたらかっこいいだろうなと思う曲の練習2

セツナレンサ、0.9倍速までならまぁまぁついていけるようになりました 。1倍速は微妙に怪しいですが。英語の発音に近づけるために口を大きく動かそうとしたら、余計に追いつけなくなってしまうという難しい状況。英語の勉強するよりも、英語の歌のマネをしてるほうが楽しいと最近思います。

Wednesday, December 27, 2006

GroupActivity::DrinkingParty - 飲み会の違和感

どうもサークルの飲み会でいまいちテンション上がらないなーと思い、あまり参加しないようにしていたのです。 そして一昨日に、久しぶりにサークルの子らと私の家で飲みました。次の日朝から授業があるので、あんまり乗り気じゃなかったのですが。

まぁ、この飲み会は、一人の女の子がクリスマスの夜に一人何もすることがなく過ごして終わるのが嫌だったからやった、という飲み会だったのですが。私はただお酒(カクテル)をつくってあげて、ゲームをやらしてあげて、適当にトークさせてあげて。睡眠時間3時間。みんなが楽しければいいんです。…というのは昔の話。献身的になるよりも、友達と将来の話をしている方が全然楽しいし、そっちの方が良いです。将来世の中こうなっていって、俺達はこうなりたいよなー、っていう半分冗談妄想馬鹿話、でも半分大マジで将来を本気で心配している。そんな話で盛り上がりたいわけですよ。後輩のアホなトーク聞いたり(それも先輩をバカにするような話で。何を言ってんだコイツわ!と思いますけど)、男に遊ばれただの騙されただの、そんな話全然興味ないわけですよ。

加えてサークルへ行ってない私は、サークルの話をされてもちんぷんかんぷん。幹部だったころは仕事感覚で後輩と接し、サークルにとどめるために必死だったのですが。ベクトルが変わっちゃったんだなーと思います。

Life::Language - 言葉の使い方

年末年始は、みんな帰省するのが見えていたのでバイトの休み届けは出しませんでした。出したかったのですが、敢えて出さないことにしました。

…ってな感じで友達と話してたら、"敢えて"の使い方がおかしいとか言われました。あんまりおかしい気がしなかったのですが、使い方を調べてみると、しなくても良いことをわざわざ…という意味だという。うーん、ちょっとずれてるようなずれてないような。"休み届けを出したいなら出せば良いところを敢えて出さなかった"。あれですかね、したいならやりゃあいいじゃんっていう考え方の私からすればおかしくないけど、人手が足らなくなるのが見えてるなら休み届けを出さないのが道理だとか、まぁ私と違うような考えをする側からすれば違和感があるのかなー、とか思いました。

Computer::Hardware - 世界一大きいフロッピーディスク

こちらが世界一大きいフロッピーディスクに関する記事です。 でかいっつったって、20型テレビくらいの大きさちゃうん?と無根拠に想像してみたのですが(そんな中途半端に大きいディスクがあったとして、読み出すドライブとかどうすんねん、やっぱりドライブも中途半端にでかくなるんか?とか想像はふくらみます)。1980年代にはこんなのが存在したんですね…フロッピーの上に人が乗っちゃってます。

Life::Music - 歌えたらかっこいいだろうなと思う曲の練習

昨日に続き、セツナレンサを練習しています。0.7倍速ならまぁ大体問題なくついていけるんですが…恐るべし1倍速!2倍速にしたら、人間の滑舌の限界を超えているような気がしました。

にしても、セツナレンサばっかり聞いていると、EminemのLose yourselfが割とゆっくりに聞こえました(笑)

Tuesday, December 26, 2006

Life::Music - 歌えたらかっこいいだろうなと思う曲

RADWIMPS のセツナレンサ。ロックとかそんなに聞かないのですが、これいい!と思えた曲です。序盤の英語ラップが猛烈な速さですごすぎです。日本語もあるので、カラオケでもギリ歌っても大丈夫?とか思ったりしましたが…英語ラップの部分は相当練習しないと無理そうです。歌詞は、なんだかしんみりする内容です。歌えたらカッコイイでしょうねー。

Monday, December 25, 2006

Life::WorkAttitude - 飲食店の勤務態度

今日晩ご飯に、近所のラーメン屋さんをチョイスしました。ボーっとしながらラーメンが出るのを待っていたら、横からぴろぴろと結構な音量の携帯の音が鳴り響きました。 誰やねん、うっさい客やのう、と思っていたら、店員の携帯じゃないですか。「展開早いっすねー」とか二人で話しています。私が座ったのはカウンターなので、目の前でその光景が広がっているわけです。…はぁ!?何だこのあり得ない光景は!この店の従業員なんちゅー勤務態度やねん!仕事中に携帯ぴろぴろならして。多分ゲームだろう。ゲームすんのか仕事中に!?そういえば頭にバンダナかなんか巻けばいいのに、何も無しですよ。髪の毛とか落ちるかもしれへんやん!あぁ、違う中華料理店に行けばよかったと段々後悔し始める私。ああもう、ひどいひどい。なんてことを思い始め、早く出てぇ…という気持ちで一杯に。

ったく、飲食店としてはどうなんでしょか。お宅はゲームしながらラーメン作るのですか?まぁ、こんなちっちゃい店だったらそれでもいいのかもしれませんね、ははっ。と心の中で呟きながらラーメンをすすっていました。普段はスープも飲み干すのですが、スープを残して立ち去りました。

飲食店でバイトしていると、そういう所に目がいってしまいますね、やっぱり。

Programming::JavaScript - 独自のキーワードを定義する

こちらで書いた通り、_superキーワードを使うことで、スーパークラスのコンストラクタを呼び出してやろうという試みをしています。_superキーワードを利用しているメソッドの中身を、toString()によって一度文字列化して、_superをスーパークラスのコンストラクタを格納したメンバ変数名へと置き換えることで、あたかも_superでスーパークラスのコンストラクタを呼び出しているように見せかけています。

一応簡単に、正規表現を使って_superを、コンストラクタを格納しているメンバ変数名へと置換していたのですが(正確にはthis._superを置換)、まぁそりゃ無謀なので。きちんとやることにしました。きちんとやるって何をやるかといいますと、コメントや関数呼び出し等々を判別して、ここは_superキーワードを利用していると解釈した上での置換をやります。それをするためには何をしなければならないか、といいますと、字句解析です。

在ればちょっと嬉しいな、という機能のために字句解析するんかい、とか思いましたが、とりあえず実装してみます。こういう場合、オートマトンで図式化してコーディングしたほうがいいんかな?とか思いましたが、オートマトンがわやくちゃになってきたので、やっぱりゴリゴリif elseでコーディングします。

何も考えずに字句解析を用いて_superキーワード置換を行っていたら、何だか処理が重くなりました。なんと、全ての実行されるコンストラクタを字句解析していました。100回近くになるのかな?各コンストラクタのステップ数はまちまちですが。もちろん、後で不要な字句解析をカットするようにしました。

しっかし、字句解析してやると実行時にコードの改変が行いやすいので、独自キーワードの定義とか色々出来そうな気がしてきました。それをやったから何だという話ですが。ノリ的にはClass with Cみたいな言語系に出来るのかなーとか思ったりします。

Sunday, December 24, 2006

Internet::Amazon - 苦情の嵐

こちらにAmazonの怠慢さについて書かれている記事がありました。まぁ手軽に購入できて便利なので、ちょくちょく利用しているのですが。ここ数年、発送日時が信用できないなとは感じていました。”24時間以内に発送できます”というメッセージ。出来ると実行するとは違うもんなー、と思いながら、最近は待つことにしています。24時間以内に発送してくれたんっていつ頃の話だったっけ…ちなみにこちらの記事で、ギフト券について書かれた箇所があります。が、これはまぁAmazonは悪くないような気がします。1万円以上お買いあげいただくと1000円のギフト券を還元。誰が1万円につき一枚やとか思うねん、とか思いましたが。

在庫やらの記載情報がいい加減なのは、Amazonに限ったわけではなく、Webikeも在庫情報はいい加減で、何回キャンセルくらったことか。もっと能力のあるやつ配属せえよなーとか思ったりします。

クレームの嵐の香りがするのはAmazonだけではなく、以前Yahooもいい加減な態度をとるところだ、という記事を見たことがあります。まぁひどいのが、突然アカウント停止、削除でしょうね。ぬれぎぬだっていうのに停止、削除はひどいでしょうと。まぁそういう企業は遅かれ早かれ消えていくんとちゃうかなぁと思ったりします。もっと誠意のある企業が現れれば、みなそっちにいく、かもしれませんし。誠意だけでなく、サービスもよくないといけませんが。

Saturday, December 23, 2006

Life::Augury - 六星占術を調べる

昨日は研究室の忘年会で、セーブしようと思いつつそれなりにはっちゃけてしまいました。朝になってもお酒が抜けきってない感じ。あぁ、二日酔いなのかな?とか思いながら、すごいローテンションでバイトの準備をします。う、さっき飲んだブルーベリーカシスジュースが少し胃からカムバック…嘔吐系ですか?

バイトにいっても、朝からあんま好きじゃない人とのキッチンスタンバイ作業。ただでさえ下がっているテンションがさらに下がる下がる。下を向きながらボディーブローくらおうものならシャアシャア胃の中ものが出てきそうな雰囲気。今日2時間延長引き受けるんじゃあなかったなぁ…と後悔しながらも。いや、ここはお互い様なんだから、引き受けるべきだったんだよ、と思い直します。

さらに、あまり慣れていない調理ポジションも少しだけやることになり。しかもすこし盛りつけを間違え。あぁ、今日駄目だ!そんな気持ちでいたので、ご飯を食べて帰る気分でもなく。早く帰りたいとか思ってました。まぁおなかの調子がこんななんで、ものを食べれる気がしなかったのです。

帰ってから、今日レポートやらないとなぁ…と思ってたのですが、やっぱり布団に潜って寝てしまいました。朝のバイトの後ってよく眠れるんですよね。で、ふと起きたらテレビで六星占術特集みたいなことをやっていたのです。木星人やら金星人がどっちゃらこっちゃら言って、ふーんとか思って見ていたのですが。木星だの金星だの言われても、何がどう対応して木星金星言っているのかを見ていなかったので。見ても意味無いじゃん!と思って晩ご飯を買いに行きました。

でも何だか内容が気になりだして、Webでちょっと調べてみようかと思い、調べてみました。私は金星人(-)だそうです。んで今日の運勢は…”減退”だそうで。ま、まぁあながち間違ってはない,というか結構当たってた気がシマス。金星人ってどんなタイプなんだろうとか思ってみてみると。

金星人は、一言で言うと、行動の星で、「せっかちな自由主義者」です。こよなく自由を求め、何ごとにつけ、合理主義にのっとって行動します。理屈に合わな いことは絶対にしようとしないし、古き伝統とか、迷信などというものもあまり信用しないのが金星人です。ですから、現代的なセンスにあふれています。流行 にもとても敏感で個性的なお洒落をします。 生活態度も、行動的な性格が反映し、なんでも見てやろう、なんでもやってやろうの精神で、好奇心も旺盛。思い立ったら即座に行動に移す尻の軽さが特徴で す。 ただし、こうした行動力の反面、ものごとを深くじっくり考えたりすることは苦手で、どうしても、人間的な軽さがつきまといます。ふだんは、”便利屋”とし て重宝がられるのですが、ここ一発、という人生の肝心なところでポカをやるし、また、ポカをやりそうな不安を人に与えるので、真の信頼がなかなか勝ち得ら れません。
結構な割合で当たってます(笑)運気が周期性を持ってるとか言われると、まぁそうなんかな、と私としては信じられるとこもあったりします。経済とかも周期性ありますし(ってあんま関係ないのかな)。合理的に動きたいですし、無駄なく効率的でないと嫌なんで、多分せっかちです。拘束されるよりも自由な方が良いですし。好奇心もかなり有る方だと。お洒落かどうかは知りませんが。考えるよりも行動!な人なので、軽いっちゃ軽いのかもしれませんね。

後、今”減退”の年だそうで(もう今年も終わりですが)。大殺界とか書かれていて、どーん!と衝撃を受けましたが、あと一週間で終わりやん、とか思って笑いました。来年はいい年になるかなーと期待したりして。就職活動もあることですし。

まー今年残り、大掃除して適当にタラタラ過ごして、来年からまた気合い入れていこうかなとか思いました。1月2月もまた色々イベントありますしね。

Friday, December 22, 2006

Life::SelfAnalytics - 自己分析してみる

就職活動をするに当たって、自己分析という文字を ちらほら見かけます。今後の目標を明確にするためにも、やっておくかな、と思い立って昨日やってみました。

やり方としては、紙とペンを用意して、紙に自分が思う自分の特徴を列挙していきました。そして、その項目らをあるキーワードである程度グループ化して、ほうほうとうなずくわけです。

とりあえず、大学に入学してから今までの自分を振り返ってみて、こういう好みや印象を持ちやすかったな、と思ったことをつらつらと書いていきます。まぁ書いていて、ある程度分かってたことなんですが、やっぱりそうか、という感想でした。向上心はバリバリあると感じており、Web上での自己分析とかやってみてもそれは出てきていました。一方で、大勢の人の中に居るのが嫌いだったりします。嫌な状況下でも、自分を高めるのに繋がるので在れば頑張れました。向上心が優先的に働いていたんだなぁと思い返されます。

人と接するのが大好きというわけではないので、そこら辺、向上心やら何やらで、自分を開いた状態にしていけたらいいな、というのが自己分析の感想でした。最近人と喋るのが苦にならないどころか、喋りたくなるときがあるので、4年前と比べれば変わってきてるんかな、とか思ったりもします。

Homepage::Update - Googleさんの技術

長年使っていたアクセス解析CGIを手放し、GoogleさんのAnaliyticsへ乗り換えることにしました。なんといいますか、使いこなすのが少し大変そうな印象をうけました。多機能故、項目が散乱していて何が何やら、ってなってしまいます。以前使用していたアクセス解析はOn The Windさんとこのものなのですが、最近私の自前カウンタは回るのにログに残っていないとかいう状態が出てきまして。手当たり次第クッキー発行して重複カウントしないようにしてるんかな?とか思ったりしましたが、まぁそろそろ違うの使ってみよう、とかわけのわからない決意により乗り換えることにしました。そこで、以前GoogleのAnalyticsというのを見かけ、あーGoogleさんってアクセス解析サービスまで始めたんか、と思っていたのを思い出し、Googleさんにしました。

ブログはブログでGoogleの傘下であるBloggerですし、Googleさんの技術にまみれていく自分がいます。向かうところ敵なしなんでしょうかね、Googleさんは。

ところで、Blogの記事に変更を加えようと思いつつ(昨日の記事のことなんですが)、まぁコメント欄から追記すればいいや、と思ってコメントを使いました。久しぶりに。そしたらなんだか動作がおかしい。ブログテンプレートがおかしかったみたいです。Bloggerのヘルプを見ながらクラシック版のコメント機能を使うようにしたら、投稿できるようになりました。以前のバージョンからbeta版、そして今のバージョンに移るまでのどこかの段階で変なことになっていたのかも知れません。

時々他のブログツールに浮気心が出てしまうのですが、Bloggerがどのように変化していくのかが少し気になるので、切り替えの踏ん切りが着かず終いのままだったりします。

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を要素に関連づけて、その要素上でクリックしたら作製したコンテキストメニューを表示させる。この処理ができて、トップページのレイアウトを少し変更したら、トップページを差し替えようかなとか思います。