Category Archives: 大学

Permalink to single post

卒業しました

無事に東京大学を卒業しました。

あと修士研究について表彰され、研究科長賞なるものをいただきました。

所属は東京大学大学院情報理工学系研究科の創造情報専攻で、研究室はささだ研でした。笹田先生をはじめとして、ささだ研の皆様にはとてもお世話になりました。とても感謝しております。

ということで、大学院在学中のことをまとめてみる。

プロファイラ関連

修士の主な研究はプロファイラの開発でした。始まりは「I/Oまわりの改善から研究の手をつけようとした→IOまわりのプロファイラをした→よく分からないことになった→じゃあプロファイラをつくっちゃおうか」という感じだった気がします。

Ruby用リアルタイムプロファイラ – rrprof

まず初めに作ったものはRuby用のリアルタイムプロファイラでした。動作デモが下のやつです。

特徴としては

  • メソッドごとに実行時間が得られる (普通のプロファイラと同じですが・・・)。
  • リアルタイムプロファイラ (オンラインプロファイラ)であること。プログラムを実行しながら平行してプロファイルできる。
  • CCTを用いて、コンテキスト情報を含めた情報取得が出来る
  • 情報取得部分と表示部分が別プログラムで、それぞれネットワーク上の別ホストで実行できる
  • それなりにボトルネックが低い

プロファイル情報の取得にはRubyのトレース命令を使ってフックをかけ、メソッドごとに開始時間・終了時間の差分値を取得しています。上記の特徴を実現するためにいろいろと実装の工夫とかしてました。ダブルバッファリングだったり、データ構造やシリアライズの工夫だったりと。

情報処理学会 プログラミング研究会 (査読付き論文誌)

このRuby用リアルタイムプロファイラについて設計と実装の論文書いて、情報処理学会のプログラミング研究会 (PRO) というところで発表した。学会は沖縄県の宮古島でやりました。学会発表は初だったのでいろいろとテンパったけど、まぁなんとか。

論文の内容としては先ほどチラっと書いた実装上の工夫点をつらつら並べ、それによってどういう性能がでたか、あるいはどんなところがオーバーヘッドの原因となっているかを細かめに書いた感じです。結果としてプロファイラの時間的なオーバーヘッドはさして大きくはなかったのですが、細かく見るとCCT作るときの処理や、時間の取得処理、Rubyのトレース命令によるオーバーヘッドがややあり、という感じでした。

あと論文誌にも投稿して、結果として採録されました。よかったよかった。ということで詳細は論文で・・・ (ここにアップしても良かったんだっけ・・・よさげだったら折角だしそのうち載せます)

スクリプト言語用リアルタイムプロファイラのためのフレームワーク – llprof

Ruby用として作ったプロファイラでしたが、自分Rubyは使わんし Pythonとかでも使えたらいいなということで、いろんな面で汎用的な部品として使えるようにフレームワークとして設計しなおしました。

特徴としては、上記のRuby用リアルタイムプロファイラのやつに加えて

  • 様々なスクリプト言語処理系に対応することができる
  • 性能尺度 (実行時間とか、メモリ使用量とか、要するに計る対象) をユーザーが拡張できる
  • Webブラウザで情報閲覧できる
  • いろいろと可視化する方法が備わっている
  • 実環境でもつかえるよ! (実際に後述するArrowで使ってみている)

画面も結構変わりました。Webブラウザ上で見るようになったこともあり。まぁどちらかというとショボくなっているという説も。以下が動作画面

構成は下図のようにビューア・サーバー・プロファイリングモジュールという三部分。

llprof - プロファイラ構成

プロファイリングモジュールで情報取得→サーバーに蓄積→それをビューアで表示という流れです。基本的に情報の蓄積データ構造や送信方法などはRuby用のやつをそのまま踏襲しています。それをそのまま汎用化した感じです。

RubyKaigi 2011

当初は「Ruby用リアルタイムプロファイラ」として発表する予定だったんですけど、なんか上記のフレームワーク的な部分が比較的よくできてしまった上に、Pythonでのある程度の分析例まで用意できそうだったので、それをネタにして発表してしまった。ただそのための準備がギリギリになって結構大変だった。まぁここで苦労したおかげてこの後は比較的すんなりと研究を進められたかも。

そんなこんなでRubyKaigiですが内容は思いっきりPythonネタでした。ほんとさーせんした。へびつかいで・・・。

ソフトウェア科学会

RubyKaigiで発表したような内容でしたが、実装面とか汎用性部分の設計についてまとめて論文にして、ソフトウェア科学会で発表した。また沖縄です。今度は本島です。沖縄ばかりですいません。発表はそれなりに盛り上がって、まぁ無難に終わったという感じ。

まぁ若干風邪ナドナドでくたばったりもしましたが・・・。

修士論文

とまぁこんな流れでプロファイラについての研究をしていって、最後に修論としてこれらをまとめました。題目は「スクリプト言語用リアルタイムプロファイラのためのフレームワークの設計と実装」でした。基本的にPROで発表したもの+ソフトウェア科学会で発表したものがベースになっている感じ。

修論もここにうぷしていいのかな。まぁそのうち。

その他

VoXY – A VNC to HTTP Proxy

なんてのも作ったりしたなぁ。授業としてね。いやクルマじゃないよ。Webブラウザから使えるVNC的な。

全部JSとPythonでかきましたとも。結局フルスクラッチで。

一応SACSISでポスター発表もしました。

Arrow

僕が仕事としてやったもの。アローね。匿名 (に近い形) でメッセージのやりとりができるというサービス。僕が担当したのはシステム設計・構築やインフラまわりなどなど。

クラウドとかなんとかまわりを本格的に触ったのはこれが初めてだったり、この規模のサイト運営も初めてだったり、アクセス殺到に潰されてみたり、いろいろと初めてづくしで非常に勉強になりました。まぁそもそもなにかソフトウェアをリリースするっていうのもあまり真面目にやったことはなかったので、そういう意味でも。

あとは、研究でやっていたプロファイラの適用例としても使わせていただきました。結果としてはあまりArrow側に貢献できる事はまだ大きくないですが、いろいろな知見を得られました。またArrowのおかげで実用的な研究としてアピールすることも出来た、という点は大きかったと思います。

ということで、機会を与えていただいたArrowの中の方々に感謝。

スナガラボ株式会社

作っちゃいました。会社。別に登記だけだったら多少の金さえあればできるので、難しいことはないですが。

会社の誕生日はワタクシの誕生日でもある7月20日に。

ある種の勢いなんですかね。まぁでもなんとなく「学生終わるまでに自分で会社作って働く」みたいな目標?があったので、それに沿った感じてもあり。

まぁ今後もいろいろと模索しながら仕事をしていきたいと思います。

今後

さぁどうしようか。

プロファイラの今後

いろいろとやりたいことはありつつも優先度は下がってしまう。まぁやりたいことをまとめるぐらいはしておこう。

  • 速く (オーバーヘッド低く) したい
    • データ構造工夫したり、送信方法工夫したり?あとは言語処理系がわのインターフェイスについても考える必要があるかもしれない。修論直前にねばったけどだめたった。。。
  • ログ的なものを送れるようにする
  • 手軽に使えるような機能を考える
    • コンソールで完結するとか?
  • もっとコードを綺麗にしなければ・・・
  • アボートすんなよ
  • Viewを拡張可能にする
  • ドキュメント・ソースコードのコメントとかをもっと整備する

一歩一歩。

僕とスナガラボの今後

さきほども書いたように、当面はいろいろと模索しつつ、営業しつつ、仕事しつつ、まぁほそぼそと。

なんかこう、ゆくゆくは情報技術を活用した地域分散を一つの軸としていって、その最前線として “離島” を絡めた仕事ができるといいですね。現状、一体何をするんだって感じですが。

ま、人生なにがあるか分かりません。

Permalink to single post

今年のORFは・・・

かなり危険な感じがする。
インフルエンザね。
ただでさえ多くの人が集まる場所は危険。
そして冬の始まり、季節の変わり目という非常に危険な時期。

あんな狭苦しい密室であの多人数はかなり危険。
まぁ建物自体はしっかりしてるから、換気・空調はしっかりしてるだろうけど。

そしてもっとも危険なファクター
ORFに出し物をする人は、かなりの割合でやや無理な夜更かしをする。
寝不足は免疫系の大敵。

つまり、出展者は感染確率が極めて高いか、あるいは既に感染してる可能性が高い。
罹患しているひとは明らかで排除が容易だけど、数日の寝不足で感染直後である、あるいは無症候性キャリアになった場合は判別が難しい。

うむむ、皆さん寝不足はしないでくださいというのが正しいのか。。。

Permalink to single post

CEATEC JAPAN 2009

CEATEC JAPAN 2009

CEATEC JAPAN 2009

毎年恒例ですが、CEATEC JAPANに行ってきました。

今年は、不景気の影響ともいわれてますが、出典ブースがすくなめでちょっと寂しさは否めない感じでした。

象徴の無い展示会

去年とかのCEATECは、ものすごく薄いモニタ(液晶だったか有機ELディスプレイだったか)があって、けっこう話題にもなった。

あとは、過去にはHD-DVD陣営 vs ブルーレイ陣営の対決があったりと、いろいろ目玉的なものがあったりした。

が、今年はそういう目玉というか、象徴的なものが無かったような気がする。

大手メーカーたちが揃って、3Dモニターとかってのを展示していたけど、大したことなかった。裸眼で見られないし。次世代照明技術展にあった、よくわかんない中小メーカーやつのがすごかった。やっぱりこういう大資本に潰されるのかなー。

あとはエコとかってのもあんま展示としてはおもしろくないし。CSRのアピールここでされてもねぇ。。。。

なんか、これが一番すごかった、っていうの思い出そうとしたんだけど思い当たるのなかったしなー。もしかしたらすごいものがあったのかもしれないけど。

テラヘルツカメラ

テラヘルツカメラ

勉強不足

毎年のことだけど、たくさんある展示のうち、かなり多くの部分が解説を見ても難しくて結局何だかよく理解できない。興味があるものなのかもわからない。

おおきいもの、つまり車とか家電とか、あとはソフトウェアとかはわかるものが多いんだけど、細かい部品、特に半導体とかは、何をするためのものなのかすらさっぱりわからない。本当に勉強不足を感じる。

それは確かに専門外だから、ほとんどわからないのは当然、という納得の仕方もあるけど、なんとなく腑に落ちない。

本当にまだまだ世の中にはわからんことがたくさんある、という事は常々感じているんだけれど、電気・電子産業だけに絞っても、本当にまだまだありますね。自分がとても小さく感じます。

そしてやっぱり・・・

幕張は遠い。ビックサイト希望。

多数の群集に囲まれた一日だったので、なんか某感染症にかからないか不安。というか鼻と喉がいたい。これはやばいか。

一日の最後は、友人六人と焼肉で終了。。。

Permalink to single post

突然の休み・台風蜘蛛2

台風が来て、結局一日まるごと休講になった。大学で勤務がはいってたから、その分の仕事も消失。かなりの給与消失。残念。まぁしかたがない。

朝からテレビ見てたりしてたんだけど、電車はものすごい勢いで止まってたみたいですね。特にJRとか。まぁ安全のためにはしかたが無い。んだよね?きっと。

一日まるごと空いたので、先日から居候の蜘蛛と結構な時間遊んでた。というより、写真とか動画とかとりまくってた。

なんか昨日までは巣を張りまくってたけど、今日は天井にずっと居る。テキトーに糸たらしてぶら下がってたり、天井をうろうろしてたり。もう巣を張るの諦めたのかな。俺んちで引っかかるのおれぐらいだし。

途中からなんだか、こいつは空を飛んで逃げたがっているような気がしてきた。外も晴れて、風も強いし。こういうときって蜘蛛はテキトーにぶら下がるっていう習性があるんですかね。わからんけど。

ということで逃すことに。箱で捕獲して外に放り投げる。もうこれでもかというぐらいに糸はきまくってベランダから落ちていきました。あーあ。

そして蜘蛛が居なくなったときに限って、蚊が部屋に飛び始める。

あの蜘蛛もどってこねーかな。。。

(天井うろうろしてるときの動画→http://sunagae.net/f/yellow_spider2.html

Permalink to single post

激しくgoogle作成中

超速でgoogleを作成中。なんかあれ作ったりこれ作ったりで最近取り留めがなくなっている感じも否めないが。

それについてとりあえず現状の記録しとく。

» 続きを読む…

Permalink to single post

質問の”解釈”

学校の課題とか、エントリーシートとか、たーーーまに相談されたりします。

(頻繁ではありません。なのでここにかいた事はあてにならないかも。。。)

そういうものって「○○についてどう思いますか?」とかの質問に対して、
その解答をするっていう事が課題になってることが多いようだけど

毎回思うことがあるので自分のためにもまとめてみようかなんて思ったり。

解釈(定義)をしっかりする

特に小さい設問の場合に怠りがちなのが、問題の解釈。

問題に対して曖昧な、ゆるい解釈をしたまま解答しようとしている。
その結果、回答もあやふやになったり、迷走してしまう。

要するに、『質問読む→解答を書く』というショートカットをしている場合。
これでもかけるような問題であったり、論理的な”ゆれ”が許される性質のものならばいいけれど、
そうでない場合、ショートカットせずにその間に明示的に「解釈」という段階を入れる必要がある。

例えば、

ネットは、「引き篭もり」になり、「想像力」が無くなって、結局は「バカ」になる。だからネットの利用を制限するべきだ。
(テリー伊藤さん)

ネットとは何か?引き篭もりとは何か?想像力とは?バカとは?
これに対する答えを考えるのが”解釈”という事になる。

さて、細かいところにいくと、解釈にも種類がある。
とりあえず「世界の解釈」と「自分の解釈」と二つに分けて呼ぶことにします。

(1)世界の解釈

世間の一般常識とか、質問者とか、質問文に出てきた人の解釈、質問の背景から導き出される解釈を考える。

この解釈に関しては、全体(出題者や、解答者、議論している人全員)で一意的である必要がある。

一般的に、ある言葉があったとき、その意味は辞書に乗っているものが、
この世界でコンセンサスがとれている意味、という事になる。
つまり、辞書に書いてあるとおり解釈するのが普通、ということ。

ただし、すべてが必ずしもその通りとは限らない。
意図的に違う解釈をさせるような場合があったり、その議論(質問)のみでアドホックに定義されている場合、あと質問を出した人が誤った(=一般世界とは違う)解釈をしている場合がある。

このような場合は、辞書ではなくその定義に従うべきだ。たとえ出題者が誤った解釈をしている場合でも、です。なぜなら、初めに書いたとおり、この”世界の解釈”は全員で一意的であるべきだからです。

ここでその世界の解釈に従わずに解答をすると、後々議論がかみ合わなくなったり、結局あげ足をとるだけに終始してしまったり、的外れの解答をすることにつながる。

上の、テリー伊藤さんの例では辞書に載っているとおりにほとんど解釈が出来るでしょう。
ここで「ネット」の意味を”網”ととらえて、「漁師が網を使うことを制限するべきだ」という主張をしている、と解釈をしたとする。そうすると、「漁師が網を使うと引き篭もりになるというのはデタラメだ」と批判出来る。
しかし、この批判がナンセンスなのは明らかでしょう。

(2)自分の解釈

問題によっては、自分なりの解釈を求められる場合があります。感情的な部分とか、クリエイティブな部分によくあるのかな。わからないけど。

解釈をどうするか、は自分次第なのでいいとして、重要なのは次のようなことだと思う。

  1. どこまで自分の解釈をすべきか見極める
  2. 自分の解釈は、世界の解釈の中に収まっている(辻褄があっている)か
  3. 自分の解釈を、明示的に宣言する

(いいものが出てこないので例は省略・・・)

[1.]については分かると思うけど、要するに、相手が定義している言葉を自分が新たに解釈を付け加える必要はなく、かつそうすべきでない、ということ。

自分で解釈する領域であっても、好き勝手にやってよいわけではなく、議論全体での整合性をとる必要はある。それが[2.]。全体で辻褄が合わなければ議論が破綻するのは当然。

また、その解釈は明示的に相手に示す必要がある。そうでないと、自分のアウトプットを正確にとらえてもらえない可能性が出てくる。

解釈(定義)から見えてくる論点

解釈を明確にすることで、ようやく論点が見えてくる。

たとえば、上のテリー伊藤さんの例であれば、「ネット」を「インターネットを使う」ととらえれば、インターネット以外、つまりテレビとか、新聞とか、マンガとかはどうなんだという話ができる。

この例で難しいのは「想像力」という言葉でしょう。テリーさんがこの言葉をどういう意味で使っているか、正確な事は知りません。

一つは、新しいものをイメージする力、ととらえれる事ができるかもしれない。その場合、

自分のウェブページやブログを作ることは、想像力を使う(=新しい物事を生み出す)訓練になる。それをサポートしてくれる”ネット”は想像力をむしろ増強させる事につながるはずた。

という主張ができるでしょう。

もう一つは、過去の情報を思い出す力、という意味で想像力と言うものをとらえることができる。そうすると、できる主張は変わってくる。

“ネット”は想像力をダメにしているわけではない。過去の記録をすべて記録することができるため、想像力が必然的に不要になってしまっているだけだ。必要のないものは淘汰されていくので、想像力が消えていくのは仕方がなく、またそれを防ぐ必要もないと思う。

この様に主張できる。

しつこく書くが、議論をする上ではこの解釈は一意的であるべき、である。つまり、上の二つの意見は一般的に両立しない。つまり、一意になるように可能な限り質問者に解釈を問いただすべき。

ただし、課題の種類によってはこれが許されていたり、わざと多義的な言葉を使っていたりして、”自分の解釈”をさせる課題もあるよ、ということ。

***

・・・と、まぁ真面目に書いてみたけど、自分は正直ここまでやってない気がする。面倒だからねぇ。

まぁそれはそれでいいんだけど、いざというときにちゃんと出きるように訓練しなきゃなぁー

Permalink to single post

secproキャンプ終了

ふぉーつかれた。
非常に有名な方々に囲まれていろいろな人に
まさに「異世界」に6日間閉じ込められたわけですが。

自分はキャンプ(特にチューター)の中では古参の割には技術レベルは相当低い人間なので、勉強しつつ、まぁでもいろいろな部分で役に立てたらいいななんて思ったりしてたわけですが。。。

まぁとりあえず疲れのせいか、なにも言葉が出てこないので浮かんできたらその都度いろいろ。

とりあえず、うちと東京工科大学ネットワークセンターとのコラボは非常におもしろそうだ。
看護ファクトタムとも共有したい気もするが、はたして強いコミットメントをもつ人が居るのか未知
というかコネクションもないからまずはそこからか

# コミットメントに関してはうちもどうなんだかさっぱりわからんが。。。