« August 2005 | Main | October 2005 »

September 26, 2005

飛行機@研究室

昨日気づいたのだが、研究室の窓から外を見てると、羽田を離陸する飛行機が見える。といっても当然それなりに遠いので機種や航空会社を判別するのはちょっと難しい。

5階ということで、エアバンドレシーバー持ち込んだらそれなりに聞こえるんじゃないだろうか?とかちょっと妄想してみる。長いアンテナ持ち込むのは顰蹙だから短い方で今度試してみるか。それにしても、SONYの携帯ラジオ程度のサイズのエアバンドレシーバーはないものか。アンテナ部分を除けば仕組み的にはただのAMラジオと何ら変わらないはずなので、あの程度に小型化することは十分可能だと思うのだが。

| | Comments (0) | TrackBack (0)

September 24, 2005

演習3: 西田研

院試→離散数学試験と忙しくてすっかり忘れていたが、演習3第3期(6/20~7/20)のまとめを。ずっと忘れていたらxhl氏に催促された。

演習3第3期では西田研配属となり、I.DroriらによるFragment-Based Image Completion[PDF]という論文の理解と実装に取り組んだ。CG系の論文だけあって、どのようなものであるかは直接論文を参照してもらうのがよいだろうが、要は写真から特定部位を切り取り、周囲の情報をもとに欠損箇所を補完して見た目に自然な画像を生成するという技術だ。

その昔共産圏では失脚し粛正された政治家がいると、その人物が写っている過去の写真も全て修正され、そのような人物が存在した証拠まで全て抹消されたと聞く。そういう用途にぴったり?ということで個人的には「粛正プログラム」と呼んでいる。(悪趣味)

それまでVM及びLinux kernelいじりと、システム系のことばかりしていたので、いきなりのCG系論文は大分手こずった。用語の解釈がわからなくて関連論文を3~4本読みあさってようやくわかったり。理解不足と院試による時間不足とでかなり適当な実装になってしまっているが、一応公開してみる。ちなみに俺の実装は相当に手抜きなので、論文に挙げられているほど綺麗に粛正が施せるわけではない。

sea
sea-result
(上)入力画像 (下)補完後の画像

これに関連した話題として、最近CNET Japanに「別れた恋人を写真から削除--MS開発者向けイベントではこんな発表も」という記事が掲載された。

Microsoftの研究者が、前景レイヤーから人間などの画像を削除し、その人間がさえぎっていた背景レイヤーの画像を復元させる技術を開発した。
との紹介を見る限り上記の技術そのものである。興味を持って調べてみたところ、Image Completion with Structure PropagationというMicrosoft Research Chinaによる研究のことを言っているようだ。おそらく今年のSIGGRAPHで発表されたばかりの論文だと思われる。論文及びデモムービーが自由にダウンロードできるので興味のある人はぜひ。(追記: 写真のサンプルについてはweb上でも見ることができる。)

Droriの手法とMSRの手法の最大の違いは、MSRの手法ではユーザーが欠損部分にある直線・曲線などの構造をヒントとして与える点だろうか。それによって、単にテクスチャの類似度のみで補完を進めるDroriの手法よりもより複雑な構造(例では階段や建物のベランダなどがあった)を補完できる。Droriの手法を自分で実験したときに、似たような階段の画像の補完に失敗した経験があるのでなかなか興味深い。

| | Comments (0) | TrackBack (1)

September 23, 2005

今年のコンパイラ演習

sumiiさんの日記でコンパイラ演習についての話題が出ていた。

それから、polymorphismとかガベコレを追加するのは、東大理情のコンパイラ演習の課題になるようです。すでにやった人もいるようですが。
とのこと。確かにうちの班のコンパイラ処理系は、俺が多相型をサポートし、xhl氏が組み込みライブラリとしてGCを書いたので、一応多相型もGCもサポートということになっている。

基本的にコンパイラ演習はレジュメが丁寧すぎて困るほど丁寧で、レジュメのアルゴリズムを書き写せば単位取得に十分なモノはすぐ作れてしまう状況なので、それで物足りない人たちは強烈かつ強引な最適化合戦を繰り広げてきたわけだ。コンパイル対象のmin-rt.mlが極度に手続き的かつ人手による最適化がすでに十分に行われていることもあって、関数型言語のコンパイラという面よりはとにかく手続き的プログラムをいかに速くするかという点ばかりに注意が払われてしまう傾向があった。これには、他の点(GC等)を頑張っても大して評価されない(速くなるわけではない)という要因もある(*1)。

unno氏が

あまりにOCamlっぽくないレイトレソースに対して過度に最適化するのはどうよ
進言したり、去年までのコンパイラ演習の「解答」そのものといっても過言ではないmin-camlが一般公開されてしまったりしたので、今年のコンパイラ演習は大きく変わることになるのだろうとは思っていたが、やはり変わるのだろうか。

個人的な意見だが、コンパイラ係は(CPU係と比べ)懇切丁寧なレジュメで手取り足取り何をすべきか教えてもらえるというアドバンテージがあるのだから、もっと頑張るべきだとは思う。多相型・GCくらいは実装しても課題として重すぎるということはないだろう(これまでのようにレジュメでだいたいの方針を解説してくれるならという前提ではあるが)。

ついでに、「アーキテクチャ賞」に並んで「コンパイラ賞」みたいなのもあったらうれしいなぁ、なんて思ったり。去年あったとしたら間違いなく受賞はunnoだっただろう。何はともあれ、今年のコンパイラ係の活躍が楽しみである。


(*1)…俺が多相型の実装を決意したのは、create_arrayを何とかして解決する必要があったことと、unnoが多相型を実装していないと聞いて見栄を張ろうと思ったこと、の2点に尽きるのであって、そうした要因がなければわざわざ挑もうとは思わなかったであろう。やはり対象ソースコード(min-rt.ml)上にコンパイラに対する要求(GCがないと実行できない等)を組み込むことが肝要かと思われる。

| | Comments (2) | TrackBack (0)

September 14, 2005

DocBook

HTMLは文書(ハイパーテキスト)の論理構造を規定するためのものだが、その機能はお世辞にも充実しているとはいえない。特に参照系の機能が皆無である。

例えばTeX(LaTeX)で文書を作る場合と比較してみると、HTMLでは図表番号参照も、文献番号参照も、章番号参照も、脚注も自動でつけることはできない。ちょっとした大きさでかつきちんとした文書を書こうとすればこれらは必須のものであり、HTMLはこの点で非常に文書を作りにくい言語であると言える。

HTMLの利点は何よりもその普及度・軽さ(PDF等に比べて)にある。要は最終的なプレゼンテーションメディアとしてHTMLを使えばいいのであって、記述する際にはもっと別の形態でもいいのではないか、ということは誰しもが考えることだろう。実際CGIなどはまさにそれにあたる。そのような背景のもと、HTMLの上位に当たるレベルでの文書の記述方法について3通り考えてみた。

Continue reading "DocBook"

| | Comments (0) | TrackBack (0)

September 13, 2005

試験終了

とりあえず単位は取れたんじゃないだろうか。とにかく疲れた。去年の例から言うと1週間かそこらで成績が出ていた気がするので、それまでびくびく。

まだまだ課題もあるし、ほんと暇にならないなぁ。

| | Comments (0) | TrackBack (1)

単位が来る/線形計画法

というフレーズでこのblogを検索してきた方がいらっしゃるようです。単位は来そうでしょうか。

泣いてもわめいてもついに試験当日。もちろん去年よりはいろいろ理解してるしいろんな定理も証明したし使えるようになったし、問題も解けるようになった。去年の問題なら単位は来るだろう。それ以前の今井さんの問題でもおそらく単位は取れる。が、ノートの全内容が完璧に頭に入って自由自在に使いこなせるかと言われればそんなことはない。世の中に100%などありえないとはわかっているが、しかし。まあ、50%をクリアできれば(*1)単位は来て卒業の必要条件(*2)を満たせるのである。

さて、今回はいつもの試験と違ってそれなりの時間をとって勉強したので、試験前夜である今日はあまり無理をせずにたっぷり睡眠を取ることにして寝ようかと思う。

(*1)…理学部基準では60%との説もあるが、いかに。でもこれまでの例をみてみると、素点と事務に報告する成績の間には何らかの恒等でない対応が存在することも多いようである。
(*2)…十分条件ではないことに注意せよ。

| | Comments (2) | TrackBack (0)

September 11, 2005

衆院選投票日

いよいよ今日は投票日である。

俺は選挙権を得てからこれまでおそらく一度も投票を棄権したことがなく、その点については少しばかり誇りに思っているが、実際政治意識が高いのかとか、しっかり考えて投票しているのかと問われれば答えに窮してしまう。

少し前に、世論調査のアンケート電話がかかってきたことがあって回答したのだが、その際
「前回の衆院選には行きましたか」
「はい」
「では差し支えなければその際に投票された候補者、政党をお教え下さい」
と聞かれて、差し支えがあったので答えられなかった。誰に入れたのか、どこに入れたのか全く覚えていなかったのである。まあ、前回の衆院選は2003年11月であり、夜間作業帰りにふらふらになりながら投票したので覚えていないのも無理もない気もするが、基本的にその場で適当に決めているから覚えていないのだろう。選挙の前には立派な公約を掲げ、当選してしまえば何もしていないかのように思われがちな議員という仕事であるが、少なくとも自分には自分が投票した議員が怠けていても文句を言う筋合いはないような気がした。そもそも誰に入れたか覚えていないのだから、批判する相手が誰かもわからない。

今回の選挙も結局マスコミの選挙特集をしっかりみるでもなく、マニフェストを読むでもなくずるずると来てしまった。いつも通り選挙公報をさらっとなめて候補者を把握して決める程度だろうか。結局のところ俺は政治的無関心なのであり、そのような意味において、投票に行かない連中と実は大差ないのではないかという気もしてしまうのである。

| | Comments (0) | TrackBack (0)

0x17歳

になりました。まだまだ0x10代、若さをバネに頑張ります!

…言ってて疲れてきた。正直もう歳が増えてうれしいことってないなぁ。まだ国会議員には立候補できないけど、今のところするつもりはないしまあいいや。

さてこの1年を振り返ってみると、オセロ(の続き)→課題修羅場→CPU実験→四国旅行→演習3→院試とISなイベントばかりであった。まあ学生の本分を全うしているといえよう。22歳最後の頃に人生最大級のびっくりがあったりした。

次の1年が無事卒論→卒業→大学院入学→M1の半ばであることを祈りつつ、2日後の試験に向けて離散数学の勉強を頑張ります。

| | Comments (0) | TrackBack (0)

September 06, 2005

ハードディスク危機

ハードディスクの危機には何度となく見舞われているような気がするが、今度はデスクトップマシンのディスクが不調。折しも購入後2年をすぎたところでそろそろシステムの再構築でもしようかなぁと思っていた矢先のできことである。ディスクはSeagate ATA Vの120GBモデル。

ここ数週間、MSN Messengerが何か動くと、具体的には誰かがサインインしたり、発言があったりすると、システム全体が数秒にわたってフリーズするという現象に見舞われていた。てっきりMessengerの腐れ仕様だと思って7.5にバージョンアップしたら直るかと思い、インストールを試みたところファイルが更新できないというエラーが出てようやくディスクの異常に気づいたという次第だ。どうやらMessengerのイベントに関連するwavファイルの位置のディスクが壊れており、そこを読もうとしてシステム全体が止まるということだったようだ。

現在ディスクチェック中だが、幸い他のファイルにはダメージはないようである。新しいディスクに完全移行してもいいのだが、まだしばらくは使えるだろうか。

追記:
ディスクチェックが終わって再起動し、ログオンしたところ自動的に再起動してしまった。そして現在自動的にCHKDSKが走っている。さっき出てこなかったエラーがぼろぼろと……。結構やばいかも。

| | Comments (0) | TrackBack (0)

September 04, 2005

OCamlは東大の公用語か

プログラミングの基本 - OCaml編

リンク先はなんとはいぱーわーくぶっく(主に東大1年生を対象としたコンピュータリテラシの自習教材)である。プログラミングの項目を見てみると一応メインにJavaが据えられているが、それと並んでOCamlというのがなんともすごい。OCamlはISのみならず東大における公用語になりつつあるのか。

ただまあ、このページに書いてあることをざっと眺めてみたが、これだけ読んでもOCamlの何がいいのかわからないだろうなぁという感じはした。OCamlの良さを実感するにはやはりC/C++/Javaで2-3木(もしくはコンパイラ)を書かせた後、OCamlのvariant型を使って書かせるということをしないといけないと思う。そして気づくとOCamlじゃないと書く気がしないというU氏のような人間ができあがるのだ。

それにしても一体誰が書いたんだろう。OCamlなんてIS関係者くらいしか知らないと思っていたのだが…。

| | Comments (3) | TrackBack (0)

正規表現の実装

何を血迷ったか、簡単な正規表現処理プログラムを書いてしまった。実はこれまで書いたことがなかったので、よい勉強と復習になった。院試の勉強で形式言語理論とコンパイラを復習してこの辺のあれこれを思い出すと同時に正規表現処理の実装について興味を持ち、最初はレポートのネタにと思って調べ始めたのだが、説明を眺めていてもいまいちピンと来ないのでついかっとなって実装してしまった。今では反省している。

「regexp.tar.gz」をダウンロード

# 注:あくまで学習用プログラムなので実用性は皆無。

Continue reading "正規表現の実装"

| | Comments (0) | TrackBack (0)

September 03, 2005

本いろいろ

院試や課題で引きこもっているうちにいろいろ本が出ていたようだ。

DEATH NOTE 8巻
ローマ人の物語(17)(20)
ジパング 20巻

さてさて全部自分で買うと結構な金額になってしまうぞ。こういうときこそ家族という経済共同体の恩恵を存分に被るべきである。

デスノート→俺は毎週ジャンプで読んでるし弟に買わせよう
ローマ人の物語→16までは父が買っていたので、そのまま父に買わせよう

ということでジパングだけ自分で買えばいいのか?ジパングも既に相当置き場所に困っているのだが、集め始めた以上は揃えないといけないのが困ったところ。最近ではネギまも集め出してしまったし、置き場所をどうしたものか…。

ついでだからこれも買っておきたい。
震災時帰宅支援マップ 首都圏版
東京を歩くには(平時でも)地図が必要だと日頃から感じる場面が多いが、今持っている地図は97年発行とかの多少古いものなので、ここらで1つ最新の地図を入手しておくのも悪くないだろう。

| | Comments (1) | TrackBack (0)

September 02, 2005

CG課題

コンピュータグラフィックス論の課題を最終締め切り当日になってようやく提出した。4問中3問を実装すればいいのだが、最もマゾ的と言われる課題2に挑んでしまったのがたたって、ものすごい時間を取られてしまった。

立方体の描画というのはちょっとした思い入れがある。高校生の頃、数学で三角関数を習ったことをきっかけに3次元グラフィックスをやってみようと思い(DirectXやOpenGLを使うことは念頭になく、あくまで自分で直接描画してみたいということだった)、プログラムを書いてみたことがある(*1)。透視投影は簡単にできてワイヤーフレームの立方体を描くところまでは成功したのだが、隠線消去をしようとしたところで「面の法線ベクトルを外積で求める」という意味がわからなくてそのまま挫折してしまったのだった(*2)。他には、まだ行列を知らなかったのでCGの本に書いてあった回転行列が意味不明で嫌になったということもあった。

というような話を演習3で西田研に行ったときにしたのだが、課題2はつまりそのせいで作られた設問なのだろうか?とちょっと深読み。そんなわけで課題2には相当無駄に力を入れてしまった。高校1年と大学4年を比較するのもどうかと思うが、昔できなかったことができるようになったと実感できるのはやはりうれしいものである。

以下はJavaの話。

Continue reading "CG課題"

| | Comments (0) | TrackBack (0)

« August 2005 | Main | October 2005 »