2010年10月4日月曜日

近況

先日、大学院の合格が決まりました。
やったね!!


今やってること
1.卒研「P2P関連のこと?」
2.授業の課題「パズルゲーム作ってる」、10月19日まで
3.授業の課題2「パブリックコメントの1505番と1506番を出す。」、10月22日まで
     1505番「クラウド対応型セキュリティ対策技術の研究開発」
     1506番「国際連携によるサイバー攻撃予知・即応技術の研究開発」


最近読んだ本
1.Javaネットワークの真髄(途中で挫折ORZ)
2.ルー・ガルー(分厚いけど中身はスラスラ読めて面白かった。近未来ICT、推理、戦闘もの?)
3.数学ガール(読み途中、頭使うのでおもしろいです。けど中盤からよくわかんなくなってきた)


ポケモン
四天王2回目クリア、シロナも倒した。けど伝説ポケはレシ、ビク以外放置。
いまは、新環境の状況整理。


夏アニメが終わって、秋アニメがはじまた。

いそがしいw

2010年10月2日土曜日

ネットワーク勉強中

IPアドレス(ネットワークアドレス + ホストアドレス)
コンピュータのネットワークインターフェイスコントローラ(NIC)に一つまたは複数のIPアドレスが付けられます。

ポート(1~65535)
そのホスト内の個々のネットワークサービスを表す1~65535の数値。
通常、パケットにはポート番号が書かれており、 そのパケットの行き先サービスを指定します。(たとえば、Webでは80番ポートを使うよう決まっている)
既定ポート:1~1023
登録ポート:1024~49151

ソケット{ IPアドレス, ポート }
ホスト上の各通信サービスと外部を結ぶ通信接点。ソケットにはローカルホストのIPアドレスとサービスを表すポート番号が結びついています。


TCP
TCPのコネクションは、パケットの中にあるフラグを使っておこなわれます。
TCP(Transmission Control Protocol)、transmission(送ること、伝送)

例:クライアント・サーバー
通信の始め方
クライアント「サーバーへSYNフラグをセットしたパケットを送信。」
サーバー「クライアントにSYN/ACKフラグをセットしたパケットを送信。」
クライアント「サーバーへACKフラグをセットしたパケットを送信。」

やり取り
クライアント「サーバーへRequestデータを送信」
サーバー「クライアントにACKフラグをセットしたパケットを送信。」
サーバー「クライアントにReplyデータを送信。」
クライアント「サーバーへACKフラグをセットしたパケットを送信。」

通信の終わり方
クライアント「サーバーへFINフラグをセットしたパケットを送信。」
サーバー「クライアントにACKフラグをセットしたパケットを送信。」
サーバー「クライアントにFINフラグをセットしたパケットを送信。」
クライアント「サーバーへACKフラグをセットしたパケットを送信。」

用語リスト
SYN:Synchronize(同期信号)
ACK:Acknowledge(確認応答)
Request(要求)
Reply(返事)
Fin:Finale(終局)


UDP(User Datagram Protocol)、Datagram(一回の送信内容)
TCPのような接続の確立や確認がなく、いきなりデータ本体を相手に送る。
ブロードキャストアドレスに対して送信できる。(TCPはできない)


ルーティング
後で書く?


参考文献
1. エズモンド・ピット著 「JAVAネットワークプログラムの真髄」
2. パソコンおやじ「TCP/IP通信の概要」

2010年9月20日月曜日

近況

一昨日は、大学院進学の内部推薦の面接でした。
聞かれたこと
1.進学理由
2.卒研について
3.得意な科目、不得意な科目
4.大学院に入ったらどういうことをやりたいか
5.大学院卒業後どういったことをやりたいか
たぶん、一通り答えられた気がする。


昨日は、埼玉県警札の採用試験(1次筆記)を受けてきました。

結果は惨敗…ORZ
教養試験では、時間内に全て解けなくて適当に塗りつぶしていた。
論文試験では、これも時間内に書ききれず、文が途中で途切れて終わってしまった。あと、内容も変なこと書いた気がする。
適正試験は、普通にできたw


最近、ぜんぜんブログ更新していませんでしたが、この試験の勉強をしていたからです。
おかげで、一般常識的なものが身についた。気がする。


ところで、

一昨日ポケモンBWが発売したわけですが、ようやく今日できるようになりました。
そして、今日はずっとポケモンやってました。
プレイ時間9時間くらいww
あと一週間ぐらいは、またブログを更新できなさそうだ。

2010年8月28日土曜日

MapReduceを勉強しよう - Java

MapReduceというのは、最近注目されているGoogleの分散処理アルゴリズムです。
最近って言っても2年以上前ですけどね…ww


始めに、MapReduceの処理はMapフェーズとReduceフェーズに分かれます。
Mapフェイズで、入力データを分割して処理。
Reduceフェイズで、処理したデータをまとめます。


まずはMapReduceの理解を深めるために、
ある小銭の束の合計金額をMapReduceの考え方を使って求めてみましょう。
1. Mapフェイズ
小銭を1,5,10,50,100,500円のグループに分けてそれぞれの枚数を数えます。そして、グループごとの合計金額を計算します。
2. Reduceフェイズ
グループごとの合計金額を全て足して、小銭の束の合計金額が求まります。

しかし、これだけだとMapReduceのすごさはちょっとわかりずらいですね。
じゃあもう少しスケールアップしてみましょう。

さて、小銭の数がもし50枚程度なら一人でもこの合計金額を計算することは簡単でしょう。
しかし、もし小銭が10000枚あったらどうでしょうか?

一人では大変ですよね。

じゃあ、6人でやりましょう。

私は1円、君は5円、ユーは10円、あなたは50円、お前は100円、あんたには500円をそれぞれ数えてもらいます。

最後に、みんなの求めた金額を足せば合計金額が求まります。
わかったかな?
このような分散処理の考え方がMapReduceというわけです。




さて次は、このMapReduceをJavaを使って体験してみましょう。

参考文献1を見て体験してください。


個人的には参考文献1のMapReduceはなんか違うなーって思ったんだけど
まあいいか、
一応、自分なりの解釈でメモ書きしておきます。


「ある文字列の英字をカウントする」プログラムについて考えます。

1. 準備
ある文字列は「abcaba」とします。
値を保持するためのMapEntryクラスを用意します。
MapEntry
char key;
int value;
2. Mapフェイズ
文字列を一文字ずつ読み取り、keyが文字、valueが1であるMapEntryオブジェクトを生成して、LinkedListに格納していきます。
abcaba
111111
MapEntryオブジェクトをソートします。
aaabbc
111111
このリストをa,b,cのグループに分けてさらに別のリストに格納します。 (入力データを分割)
  a  | b |c
aaa|bb|c
111|11|1

あとはa,b,cの要素ごとにカウント。

3. Reduceフェイズ
カウントした数をデータ保存用の配列に格納。そして、必要とあらば出力。


こんな感じかな。
MapとReduceの境目が微妙だけど…


参考文献
1. @IT「GoogleのMapReduceアルゴリズムをJavaで理解する」

2010年8月19日木曜日

近況 - 雑談

最近、勉強していませんでした。

なぜかって夏休みですからね、アニメ見たり、マンガ読んだり、ラノベ読んだりしてました。あとお盆のお墓参りで5日ほど帰郷していました。

しかし、いくら夏休みと言っても遊びすぎは良くありませんね。
そろそろ勉強とか再開しないと。
そして、いいかげん卒研も進めないとヤバそうです。


話は変わりますが、最近不景気ですね。
どうして不景気になってしまったのか自分なりに考えていました。
暇だったので…いや、別に勉強のやる気が起きないからじゃないよ。
あと、足りない知識は想像で補っています。

まず不景気とは、
別に世の中のお金が減っているわけではないんですね。売買や取引が少なくなってお金が回らなくなっているということなんです。といっても稼いでる人はたくさん稼いでるわけなのですが、その人たちがお金を使わずためこむからお金が回らなくなり不景気になるわけですね。

じゃあどうすれば景気が良くなるのでしょうか?
お金をたくさん稼いでる人が、たくさん稼いだ分だけお金を使えばいいのです。
しかし、さすがに人にお金を使わせるのはなかなか難しいことです。
というわけで、たくさん稼いでる人や企業からはたくさん税金を取って国民に還元(経済対策)すれば解決しそうなきはするのですが、なかなかうまくいかないみたいですね。

しかしなぜ景気が回復しないのでしょうか?
それは、国単位での景気対策でしかないからでしょう。一つの国で景気対策してお金をばらまいても他の国のほうにお金が回ってしまえばたいして意味が無いのです。
そして、そんな中で稼いでる国はちゃっかり稼いでいるんですね。ということは、お金をたくさん稼いでる国が、たくさん稼いだ分だけお金を使えばいいのです。しかし、さすがに国にお金を使わせるのは本当に難しいことです。

さて、どうしようか。

2010年8月7日土曜日

昨日の見たサマーウォーズについて - 雑談

ネタバレ注意。


っといってもストーリーはスルーで、ITネタだけ拾ってきます。

・OZ
イメージとして、セカンドライフ+グーグル+マイクロソフト+…
ってかんじかな。独占禁止法に引っかかるしww 

・暗算で、年月日をから曜日を算出
やり方は、ツェラーの公式 を使うようです。日付を代入するだけなので3分もあれば私でも出来る気はするのですが、暗算は無理そうです。

・健治が解いた暗号
2056桁(10進数の羅列)の暗号ですね。
紙とペン使って解ける暗号って何だよww
そして、最後は暗算とかwww
よっぽど暗号が簡単なのか、健治のスペックが神がかってるのか。
まあ、僕は暗号については詳しくないんで、よくわかりませんでした。

・ラブマシーン
いかにも悪者っぽいけど、額にハートマークがついているというシュールな敵です。
知識欲を持ったハッキングAIということですが、プログラムですよね。ってことは、どっかのパソコン上で動いてるのだろうから、そのパソコンをネットワークからはずせば解決するんじゃないのか?
もしくは、ハッキングAIというわけだから、ウイルスみたいに不特定多数のパソコンに感染してボットネットワークみたいなのを形成し、グリッドコンピューティングみたいな感じで動いてるのかな?
よくわかりませんね。

・でっかいパソコン
あんなでっかいの需要あるのかなー?


感想
ITネタを扱っていたこともあり、そこそこ楽しめました。

2010年8月1日日曜日

近況 - 雑談

・OverlayWeaverでGUIアプリを作成中

まだできてないので、これについてはそのうち書く予定です。一応、概要だけ書いておくと、DHTShellを改造してチャットプログラムみたいなのを作ろうと計画中。


・ここ一週間で、ラノベを4冊読破しました

読んだのは以下の4つ。

  1. 不気味で素朴な囲われた世界
  2. きみとぼくが壊した世界
  3. 不気味で素朴な囲われたきみとぼくの壊れた世界
  4. フルメタルパニック 「せまるニック・オブ・タイム」
1~3は、西尾維新さんの世界シリーズですね。
世界シリーズは、一巻目の「きみとぼくの壊れた世界」を5年前ぐらいに読んで以来、触れていなかったのですが市の図書館で偶然見つけてしまい一気に読んでしまいました。
あと、これの続編で「ぼくの世界」と言うのがあるらしいのですが、楽しみです。


4つ目は、最近発売されたフルメタの最新刊。まちに待った最新刊です。
何年待ったことか、3年ぐらいかなー
そして、ついにクライマックスですね。
どうクライマックスなのかは、読んでみてのお楽しみ!!
そしてそして、終に次巻で完結です。
はやく、読みたいよー!!


さてさて、それではネタバレでも


なんてしたら、怒られそうなので、
ネタバレはせずに、

心に残ったセリフだけ紹介してみようかな。うる覚えだけど…



  1. 「 デスノートで悪いやつを全員殺すのと、ドラゴンボールで悪いやつ以外を生き返らせるって言うの思考は、同じなのかどうか…」
  2. 「ほら、確か冒頭でさ、お兄様、お兄様って連呼されてるじゃん。…」
  3. 「疑わしきは罰せずとか言って、疑われた時点で既にそれが罰なんですよ。…」
  4. 「イエス、アイ、マム」
 このセリフにグッときたら、今すぐ書店へゴーですよ。