webシステムのことだったり、フレームワークについてだったり、大規模システムの開発だったり、一人だとなかなか学べないことを学べているので、いい経験かもしれない。アルゴリズムとか数学とか一人で出来ることは趣味でやって、一人だとできないことを仕事でやるといいのかもしれない。あと最近スターウォーズをレンタルして見ている。trilogyを見てるけど、多分prequelの方がおもしろい。ナタリーポートマンがかわいい。レオンのときの幼女ナタリーもかわいかったけど、大人の女性に成長したナタリーはとびっきりの上玉だ。あと家に帰ってから、頭を使うことをする気力がないので、バスケットボールを指の上で回す練習をしている。50秒くらいは回せるようになった。何の役にも立たないスキル。Clarksonの2012年のヒット曲の一節。stronger.の間違いじゃないの?と思った。stronger.じゃないの?なぜdoesn'tがつくのか。doesn'tがつくとそんなに辛くないことみたいに聞こえる。辛いけど、死ぬほどの辛さじゃなければ、それは人を強くする。いや、まあそうだけど。この辺は英語と日本語の感覚のずれなのだろうか。Fourソルバーを作る(6)前回までで簡単なAIが出来たので、GUIで遊べるゲームを作り始めました。なんとなくクラス設計をミスった感じがしています。今まで作っていたものをConnect4_CoreConnect4_BatchConnect4_CUIConnect4_GUIのように分けて、Connect4_Coreにゲームの状態を判定したり、プレイヤーの戦略ロジックとかを寄せてみました。Coreの機能を利用して各UIを実装しました。Batch/CUIはうまく書けましたが、GUIがうまく書けない(うまくCoreと連携できない)。「何でテストフレームワークにアクセス権限を変えるような機能がないんだろう。「privateなメソッドをpublicにしないと単体テストができないっていうのは、クラス設計がいけていない証拠だ。クラス設計やりなおせ。」みたいなことを書いているサイトを見つけて今思い返すとまさにそのとおりだなーという感じです。半日くらいでさくっと書けると期待してましたが、道のりは思っていたより長そうです。マウスクリックしたら石が下から埋まっていくとこまでは出来たので、画面イメージをはっておきます。アルゴリズムTCPとは何か?分かってるようで分かっていなかったので、概要レベルでまとめてみた。suiteの中核をなすプロトコル(決まりごと)の一つ。suite全体を指してTCP/IPと呼ぶことがある。suiteっていうのは、HTTPとかFTPとかSSHとかTCPとかUDPとか・・・インターネットのために使われるコミュニケーションプロトコルの集まりのこと。searchnetworkingよりインターネット上のコンピュータ間のデータ転送を行うための決まりごと。TCPは効率的なネットワーク上のルーティングのために分割された個々のデータ(パケット)の管理を行う。WEBサーバーのTCPレイヤーは、HTMLファイルを複数のパケットに分割し、パケットの数を数え、個々のパケットをIPレイヤーに渡す。それぞれのパケットの行き先は同じIPアドレスだったとしても、それぞれのパケットは異なるルーティングをされるかもしれない。クライアントサイドでは、TCPはパケットが送られてくるのを待って、パケットを一つの元のファイルに組み立て直す。受け取り側で分割されたパケットを組み立てること。そんなことが必要かというと、効率的にデータを転送するため。(パケットを使わずに一気に送ろうとすると、何らかの理由で相手に届かなかったとき最初からすべて送り直さないといけないので非効率。パケットを使うと、届かなかったパケットがあった場合そのパケットだけを再送すればいい。FourのAIの進捗を書きます。pruningを実装してみました。pruningなしのものと比較して予想通りの動きをしてくれたので、正しく実装できていると思います。Playerどの辺が追加されたか分かり辛いので、pruning入れる前のものとのdiff。}α-βとは関係ないですが、前回まで作ったプログラムにバグがあったので直しました。PlayerAnalysisまず考慮時間について。枝刈りを入れることで体感だと10倍以上考慮時間が短くなった。深さ20くらいいけるかなと予想していたけど、深さ12の時点で10秒以上かかってしまった。(※このプロジェクトでは10秒以内に指し手を決定するAIを目指している。)AlphaBetaPlayer(探索深さ10)を前回まで最強キャラだったSmartMinMaxPlayer(探索深さ8)と戦わせてみた。ゲームの流れを見ていると、お互いが負けないような手を指しあって引き分けパターンに毎回落ち着いている感じだった。見ていて面白いゲームではなかった。これだけだと強くなったかどうか分からないので、MinMaxPlayerと戦わせてみた。こちらも大きな進歩は見られなかった。うーん、今回の改良はスピードアップができたというだけか。読みの深さが2増える程度だとそんなに結果に影響しないということか。いうより評価関数が正確なものじゃないことが問題なのか。Completed!英語吹替版「めぞん一刻」全エピソード見終わりました。今年の目標の一つだったので達成感に満ち溢れています。話を既に知っている&英語版コミックを読んだことがあるので、話の内容はほぼ完璧に理解できました。一言一句完全に聞き取れるかというレベルだと、キャラクターによるという状態です。30%くらいしか分からない分析してみると、きちんとしたキャラクターはきちんとした言葉使いをするのでほぼ完全に聞き取れる。多少ラフな言葉使いやスラング程度なら理解できる。速く喋る人、ぼそぼそっと喋る人の英語はまだ完全には聞き取れない。前後の会話と脈絡のないことを言われるとほぼ分からない。シェークスピアの引用とかされても分からない。言ったところでしょうか。次はアメリカのsitcomに挑戦してみようかな。alligator.これは昔聞いたことがある。実はこれに対する正しい(?)受け答えがある。crocodile.相手の英語力を図るために使ってみるといいかも。blah-blah-blahこれはフィリピン人と英会話をしていたときに、よく聞いた表現。英語とは思っていなかったが、英語だったらしい。意味は、うんぬんかんぬん。