ぼうメモ帳

2004-12-29 実家が危険

銀行も思った以上に容赦がないんですね。国民の血税で守られながら、安穏と過ごしてきているというイメージしかないので、こんな印象を持つのかもしれません。どちらにしても、来年以降、金融系のビジネスユニットにだけは配属されたくないですね。

あと3ヶ月余裕があれば、手の打ちようもあるんだけど… もしかしたら、そろそろ自分の身を守る戦略を考えないとヤバイかもしれませんね。とりあえず、第三者の立場である大学法律屋さんに相談に乗ってもらうほうが吉かもしれないなあ。いま私が困っている辺りの法律に明るくなくても、最悪でも誰か紹介してくれるべ。

うぅ〜

プログラムが間に合わない

| プログラムが間に合わないを含むブックマーク

プログラムを書く気になれないので、javadoc用のコメントを散りばめる作業だけしています。どうも、やるきしねー。

一応、論文のほうは、評価以外は大体文章を作りました。あとは、英文化と平行して、つぎはぎだらけの文章を整えていくだけです。まあ、これが難しいって言えば難しいんですが。でも、この推敲ってやつは、書き上げてから時間を置かないとできないからなあ。

しかし、論文を書いてると、ぽっぽぽっぽともっと良いアイディアが出てくる。いかに普段自分が研究してないかがばればれな罠。さてさて、そろそろ地獄突入する準備をしなくちゃ。

まだまだうちの大学も捨てたもんじゃないのかも

まだまだうちの大学も捨てたもんじゃないのかもを含むブックマーク

正直、私の通ってる大学って、もう駄目かも〜 なんて思うことが多々ありました。なぜかというと、学生の質の低下しているという話をよく耳にするからです。

私は一年生のTAはやらないからよく知りませんが、友人が「今年の一年生はさらにボトムを押し下げてくれた」という趣旨の愚痴を毎年言っているのを聞きます。また、先生も毎年学力が下がっているという話を良くおっしゃっています。真偽のほどは、学部生には興味のない私には良く分かりません。しかし、プログラムのコピー判定ツールが恐ろしいほどの成果をもたらして時期があることを考えると、あながち外れてはないと考えていました。*1

しかし、先日、数人の学部生とお酒を飲む機会がありました。先に言っておきます。私はお酒を飲むのは好きですし、年上の方と酒を飲むのもぜんぜん大丈夫です。ですけど、年下と酒を飲むのは実は苦手なんですよね。で、その私が珍しく年下である学部生とお酒を飲みました。

いや〜 話を聞く限りでは、俺なんかよりもぜんぜんしっかりしてる。向上心はあるけど、技術が追いつかなくて苦しんでたり、もっと先にチャレンジしたがってたりと、優秀な学生もちゃんといるじゃないか、と思いました。

さて、ここまでは、うちの大学もまだまだ捨てたもんじゃないなと思ったところ。ここからは、ただの愚痴。だったんですが、書き終えて読み直してみると、ちょっと公開できる内容ではなくなってしまったので(私の修了が危なくなるかもしれない内容)、しばらく寝かせておきます。そのうち公開するということで。

*1:課題コピーがなければ、コピー判定ツールは何も出力しないので、成果もくそもない

トラックバック - http://d.hatena.ne.jp/susumu/20041229

2004-12-28 飲み

二日連続でジャズバーで朝まで飲んでいました。初めて真面目にジャズを聞きましたけど、なんか普段自分が聞いている音楽に対する不満が全て解消されていて、「もっと早く知っていれば」なんて思ってます。

修士論文

| 修士論文を含むブックマーク

関数言語の説明と、最適化に関する説明と、評価の部分で一通り日本語が終わる!! 明日中に日本語は仕上げるぞ!!

トラックバック - http://d.hatena.ne.jp/susumu/20041228

2004-12-26 乗り切った

クリスマスは、いつもどおりに友人たちと鍋を突いていました。具があまってあまって、あと2〜3日は鍋を突かないと。

P2Pファイル交換ソフトを作ってみる(2)

| P2Pファイル交換ソフトを作ってみる(2)を含むブックマーク

第一回:http://d.hatena.ne.jp/susumu/20041205#p1

前回から3週間近く経過してしまいました。とにかく続きです。出来るところから、少しずつ設計を考えていきます。

開発の流れですが、まず1対1のP2Pを実装し、次に多対多のP2Pを考えていきます。使用する言語Javaで、お手軽楽チンネットワークプログラミングと行きたいと思います。

提供するサービス

ユーザーに提供するサービスを挙げます。

  • 1対1のP2Pファイル交換
  • ユーザー認証
    • 相手のファイルを閲覧する権利(無制限にOK,許可されればOK,駄目)
    • 相手のファイルを受信する権利(無制限にOK,許可されればOK,駄目)
    • 自分のファイルを相手に送信する権利(無制限にOK,許可されればOK,駄目)
  • ちょっとしたセキュリティ
    • 認証中にやりとりするデータが外に漏れたら嫌
ファイル交換

当たり前ですが、ファイル交換機能を組み込みます。

ファイル交換機能は、ファイルを相手に送る機能と、相手からファイルを受け取る機能の両方を含みます。相手にファイルを送る場合、ファイル名+ファイルデータを相手に送信します。また、相手からファイルを受け取る場合は、欲しいファイル名を相手に送信します。相手が公開しているファイルを知るために、ファイル名のリストを相手から受け取る必要があります。

ユーザー認証

ユーザー認証機能を組み込みます。

なぜユーザー認証機能が必要かというと、今回作成するプログラムは、匿名ファイル共有ではないことと、ファイルを強制的に送りつける機能があるためです。もしユーザー認証機能がないと、自分の知らない相手からファイルをがんがん送りつけられてしまうことになり、これは軽く泣けます。

セキュリティ

通信経路上を暗号化します。

ユーザー認証を行うときに、認証データを外に漏らしたくないためと、パケットの解析をされたくないためです。

各ノード(ピア)の機能

各ノードの機能について考えます。

通信について

各ノードは、サーバー機能およびクライアント機能の両方を有します。

ノードは起動後、サーバースレッドを開始させ、ServerSocketを用いてある定められたポート番号で待ちます。相手ノードからサーバー機能にアクセスされた場合、相手ノードへのサービスを開始します。このとき、1対1のP2Pなので、相手ノードとのコネクションが切れるまでは、他からのアクセスは受け付けません。また、サーバーがコネクションを受け付けたとき、折り返し、自身のクライアント機能を用いて、相手のサーバーに接続します。

また、ノードは、ユーザからの命令を処理します。特に通信を必要とする場合、クライアント機能を用いて実現されます。クライアント機能は、上記の命令およびデータをサーバーに送る機能から成り立ちます。

サーバー機能およびクライアント機能は、常時接続されており、セッションが保たれています。プログラムの簡単化のため、命令の発行はクライアント機能からしか行えなず、命令の解釈はサーバーからしか行えないようにします。ですから、ピアAとピアBが通信を開始するときは、A→BというチャネルとB→Aというチャネルの二つのチャネルが成立することになります。

セキュリティについて

通信を暗号化することで、ちょっとしたセキュリティをがんばります。具体的にはSSLを用いる。これで、通信の安全化を行う。

SSLを用いるときは、自己証明(?)を使います。ですから、これ自身を用いて認証することは出来ず、あくまで通信の暗号化のためだけに用います。

ユーザー認証

ユーザー認証は、ID,ID+パスフレーズ、IP+パスフレーズ、IPのみのいずれかで行います。これは、ユーザー認証が複数あるのは、認証の問題と言うよりも、ピア管理を効率化するためのものです。

IDのみで認証する場合、たとえばguestのようなものを実現します。またID+パスフレーズの場合だと、ある特定の個人やグループに対して認証を行えます。IP+パスフレーズは、自分ひとりで使う場合に、家のマシンと外のマシンとかで使えます。IPのみも同様だけど、IP偽装が怖いのであまり使いたくはありませんが、ある特殊な場面においては便利かもです。

通信プロトコル

通信は、サーバ接続時、要求発行+データ通信時の2つに分けられます。それぞれ、プロトコルを決めます。

サーバー接続時

サーバ接続時は、こうなります。

 Client >>- P2PSpecific(32) AuthTYPE(1) DATA(64) ->> Server
 Client <<- P2PSpecific(32) YorN(1)              <<- Server

P2PSpecific(32)は、32バイトの固定的なバイナリ列。このバイナリ列が違うと、Serverからはリジェクトされます。自分がP2Pソフトであるという証明書のようなものを想定しいます。SSLも自己証明は行えるけど、自己証明じゃ何の証明にもならんから、もう一回自己証明をするってなことです。趣味の問題で、あんまり意味はありません。

AuthTYPE(1)は、1バイトで、ユーザー認証の種類を表す。1バイトも要らないけどね。

DATA(64)は、64バイトで認証のためのデータ。AuthTYPEによって、内容は変わってきます。

YorN(1)は、認証成功か失敗かを表すだけ。成功していたら、そのままセッションは保たれて、失敗してたら、セッションサーバー側から閉じられる。

データ通信時

次に、データ通信時の話。

 Client >>- P2PSpecific(32) ReqTYPE(1) DATA(n) ->> Server
 Client <<- P2PSpecific(32) YorN(1)            <<- Server
 if( YorN(1) == yes ){
     switch( ReqTYPE ){
     case ReqGetFileList:
         Client <<- FileNum(4) [ FileNameLen(1) FileName(n) ] <<- Server
     case ReqGetFile:
         Client <<- DataLen(8) FileData(n) <<- Server
     case ReqPutFile:
         Client >>- DataLen(8) FileData(n) ->> Server
     }
 }

ReqTYPE(1)は、サーバーに対する要求の種類を表します。

DATA(n)は、要求の種類に応じたデータです。ReqGetFile、ReqPutFileについてファイル名の指定や、ファイル情報に使用されます。

こんなところで、今回は疲れたので終了します。

次回は、実装です。ソースコードを貼り付けるだけという凄く簡単な何か。

eclipseeclipse 2004/12/26 23:09 はじめまして(かな?)eclipseと申します。
いつも読ませていただいてます。
P2Pソフト開発ですかぁ。面白そうですね、期待してます。
第2の47氏にならないように気を付けながら頑張ってくださいw

susumususumu 2004/12/28 22:51 eclipseさん、少し遅くなりましたが、どうも(たぶん?)はじめまして。一度どこかでお会いしてたらごめんなさい。
最近は、どこでもP2Pファイル交換ソフトを作ってるので、きっと47氏のようにはならないんじゃないかな〜などと、淡い期待で開発していこうと思ってます。
自分で言うのもなんですが、面白い機能を搭載する予定なので、ばっちり期待していてくださいw

トラックバック - http://d.hatena.ne.jp/susumu/20041226

2004-12-23 予定がないってさびしいねえ

修士論文

| 修士論文を含むブックマーク

クリスマスを含めて年末の予定がほとんどないってのは、修論が進んでうれしいことなのか、人としてやっぱり寂しいことなのか、などと考える暇が合ったら修論書けってことで、いま一生懸命執筆中です。

現在、ワードにて打ち込んでいる段階で、表紙から全てひっくるめて23ページ。文章のストックはあと20ページほど残っているから、参考文献のリストや、実験結果の表・グラフを追加すれば50ページぐらいになるのかな。もっとも、プログラムがぜんぜん終わってないという悲しい状態なんだけどね。プログラムの動作結果は大体予測できるから(てか、予測したとおりの結果を出すようにプログラムを書くし)、実装はほとんど数値的な確認の意味でしかないので、モチベーションが上がらない。しかし、プログラムを終わらせないと、数値的な評価も出来ないし… う〜ん

そう言えば、英訳も残ってるのか…

修士論文続き

| 修士論文続きを含むブックマーク

正直、世の中に出すのが恥ずかしい。修了さえ出来れば良い!!なんて気持ちで修士論文を書いてるからいけないんだけどね。

文章のストックを全て消費して、現在全体で40ページ。本体で30ページ。書き足りてないところを考えると… 鬱になってきた。

トラックバック - http://d.hatena.ne.jp/susumu/20041223

2004-12-15 セカンドオピニオン

今日初めて、セカンドオピニオンを聞いてきました。

そしたら、

「素直な根っこだし、きちんと生えているから、治療するとしたら根の治療をしなきゃいけないけど、いま無理して抜く必要はない。」

という返事を頂きました。で、抜くか抜かないか、どちらが良いかは私が判断すればよいとのことです。

レントゲンを見た限り、他の臼歯とかわらない、素直な歯でした。

本当に、上の親知らずがまっすぐ生えてこなかったことが悔やまれます。ちゃんと生えていれば、何のためらいもなく治療できるのに、上の親知らずの関係でどの道抜くんだから今抜いても良いでしょという理論が通るのが、本当に悔やまれます。

それにしても、神経が死んだのか、炎症が治まったのかはわかりませんが、昨日の夜の痛みはほとんど治まってしまったので、どこが痛いのか分からず残念です。なんとなくですが、親知らずとその前の歯の間が痛いところまでは突き止めたぐらいですか…

とりあえず、治療という方針で頑張りたいと思います。

その後

その後を含むブックマーク

激痛は過ぎ去り、鈍痛も治まり、歯を叩くと響いて痛い状態になりました。ネットで調べると、これが神経が死んだ状態らしいですね。あの歯医者め、何も最後の引導を直接渡さなくても良いのに。

それにしても、昨日は凄い痛みでした。左下の親知らずなんですが、左あご全体が痛くなり、痛くて痛くて眠れない状態でした。もっとも、喘息の息苦しさに比べれば、激痛なぞ大した辛さではないので、いつの間にか寝てましたけどね。

でも、大丈夫なのかなあ。神経の死亡が、他の歯に伝播しなきゃ良いけど。

トラックバック - http://d.hatena.ne.jp/susumu/20041215

2004-12-14 歯科医 このエントリーを含むブックマーク

今日、親知らずの抜歯のために歯科医に行きました。

「まだ迷ってんるんだって?」

歯科医は言います。

「えっと、歯軋りが激しくて歯がだいぶ磨り減ってるし、かみ合わせのこともあるから、やっぱり残しておいたほうが良いかなあと思っちゃって。どう思います?」

歯科医は、歯並びや噛み合わせをチェックします。

親知らずのせいで噛み合わせがおかしくなることはあっても、抜いたからといっておかしくなることはない。歯軋りは、どうせ直らないから、マウスピースを付けるしかない」

断言されました。

「でも、心配なら、応急処置的に神経の上の部分だけ取り除いて、蓋を閉めるってことも出来るけど。だけど次に痛くなったら、抜歯だよ」

神経の上の部分だけ取り除く?

「根の治療はできないんですか?」

「どうせ根の治療をしても無駄だから」

根の治療をしても無駄!? そりゃ、将来的には抜くかもしれないから、無駄かもしれないけど、無駄かどうかを判断するのは、医者じゃなくて患者だろう。患者がそれを望むんであれば、無駄でアレなんであれ、最善を尽くすのが医者なんじゃないか?

それに、少なくとも初診の時には、根の治療をするか、抜歯するかの2択だったじゃないか。それを、今になって「無駄」の一言で片付けるなんて。

正直、今回ばかりは腹が立ちました。

「応急処置で良いので、治療してください」

結局、抜歯はやめました。だって、少なくとも、「無駄」とまで言われたら、セカンドオピニオンを聞きたくなります。抜いてしまったら、セカンドオピニオンもくそもないので、それまでは耐え忍ぼうと決心しました。

そして今、親知らずが痛みに耐えている状態です。まあ、今は抜歯するかという気持ちですが、こちらにも意地がありますので、2〜3日は我慢して、セカンドオピニオンを聞いてから、抜歯したいと思います。

それにしても、親知らずを抜歯して、顎や他の歯に何かが起きたときは、絶対にこの医者を訴えてやる。

ちなみに、私の歯は全体的に噛み合ってなく、右側の親知らずだけが噛み合ってる状態です。あと、左側の親知らずは、上の歯が若干斜めに生えて前の歯に引っかかっていますが、下の歯が少し伸びているおかげで、噛み合って物がかめます。残りは、犬歯しか噛み合っておらず、犬歯は歯軋りで削れて平らになっています(それだけ凄く歯軋りをするらしいです)。

奥歯は、親知らずが低かったころの歯軋りのために、いくつものひびが入っています。とくに、今回抜こうと思った親知らずの前の歯は、虫歯にもなってて、しかもひびも入ってて、それほど長持ちするとは思えず、根の治療が必要とはいえ、根のしっかりしている親知らずを残して、将来のブリッジやら部分入れ歯に備えるほうが良いのではないかと思いはじめています。

あと、本当に親知らずが痛いのか、自信がないんです。いま、奥歯が痛いのは事実なのですが、親知らずか、その前の歯か、痛いのがどっちかよくわからない。だから、闇雲に抜歯というのが怖い。

とりあえず、明日、他の歯医者に行ってみたいと思います。

トラックバック - http://d.hatena.ne.jp/susumu/20041214

2004-12-05 昼夜逆転してしまった

P2Pファイル交換ソフトを作ってみる(1)

| P2Pファイル交換ソフトを作ってみる(1)を含むブックマーク

恥ずかしながら、真面目にソケットを叩いてネットワークプログラミングを行ったことは、生涯で1度しかありません。普段は、通信用ライブラリを使って楽をしていました。いま、修論の合間を縫いながら、P2Pファイル交換ソフトを書こうとしているのですが、プロトコルを考えるに当たって問題点が発生しています。(真面目にプロトコルについて勉強したわけではないので、これ以降の記述で間違ってたらごめんなさい。)

作ろうとしているのは、誰でも接続できる、プッシュ可能はP2Pファイル交換ソフトだ。MSNメッセンジャーファイル送信機能を想像してもらえればOK。当分の使用用途は、簡単なFTPの代用だ。

自分が複数台のマシンを使用しており、しかもネットワーク上で離れた場所に点在しているとき、ファイルの共有を行おうとしたらどういった手段があるのか。思いつく限りのリストアップをすると、

などが考えられる。もっとも、良い手段が思いつかない想像力のない自分が泣けてくるけど。(なんか、わざわざ自分で作る必要がないように思えてきたけど、作ることに意味がある。ただたんに、作りたいんだよ!!)

で、次回は、具体的な設計について。

ということで、日記ネタが少ないので、無理やりネタを仕込んでみました。いまからP2Pソフトの流れを作っておけば、Winny本が出たときにネタにしやすいでしょ。

トラックバック - http://d.hatena.ne.jp/susumu/20041205

2004-12-03

susumu2004-12-03

携帯から、日記を書いてみる。

携帯から、日記を書いてみる。を含むブックマーク

携帯を買い換えてみる。さらに、はてな携帯から更新してみた。なんか楽しい。

ちなみに、新しい携帯talbyです。いきおいだけで、決めました。

歯医者

歯医者を含むブックマーク

今日、気合を入れて抜歯の覚悟をしました。で、歯医者に行ってみると、「え、来週の金曜日に配属面談?」 そして、抜歯は中止へ。来週の火曜日になりました。奇しくも、同居人と同じタイミングです。

トラックバック - http://d.hatena.ne.jp/susumu/20041203

2004-12-02 情報系大学の名が このエントリーを含むブックマーク

大学の演習室環境にて、デフォルトで起動するJavaバージョンが1.3.0ってのが切ない。演習用にjavaGUIプログラムを書いたんだけど、使用しているライブラリの関係で動かない。う〜ん、ちゃんと1.4.2_05も入ってるんだけど、なんでインストールされてないんだろう…

で、1.4.2の方で動かしたら、Character.isSpaceChar(int)のところで、メソッドがないぞと怒られる。ああ、コンパイルしなおしてファイル送るのメンドクセー。

やっと起動したと思ったら、piccoloを使っているために、めちゃくちゃ動作が重い。これは… piccoloを使わないバージョンで作り直すか、ドラッグ機能をなくすかして、もたつきを感じさせないようにしないとヤバイと思った一瞬でした。

残念。

トラックバック - http://d.hatena.ne.jp/susumu/20041202
268060
Connection: close