プログラミング所感 - 前へ 目次次へ07/01/09(火)新年である。抱負はなし。OR学会誌は、ゲームの特集で面白い。囲碁ソフト彩の作者の論文もある。モンテカルロ囲碁がよいそうだが、 強化学習の方がよいだろう。Backgammonの最強ソフトは、強化学習だが、囲碁もそうなるのではないか。 学会誌に強化学習の話が1つもないのは寂しい。 07/01/11(木)効果の測定について。教育の効果などは、すぐにはわかりにくい。このようなものも強化学習だと評価可能かもしれない。 もちろん、具体的な方法はないし、できたとしても相当時間もかかるだろうが。 企画力、リーダーシップ、プレゼン能力、コミュニケーション能力など、どうやって測定したらよいか難しいときがある。 横に図りたいもの、縦に評価しやすいもので行列を作り、線形結合で表されるとすれば、評価しやすいものから 図りたいものを最小自乗法で評価できる。例えば、プロジェクトAで納期を守れたかどうか(0/1)=α×リーダシップ+ β×コミュニケーション能力…のように。たぶん、線形式じゃないだろうし、パラメータの決定も難しい。 (大量の事例があれば、パラメータの推定は可能だが) 07/01/16(火)理想のシミュレーション言語 を考えている。条件は、指定時間だけシミュレーション時間で wait してもメソッドが分断されないことである。
独自の言語でないと難しいと思っていたが、シングルスレッドでも、C#で制限つきで可能である。 ILでは分断されるのだが、プログラムは分断されずに書ける。ローカル変数も問題なく使える。 勘がいい人は、想像できるだろう。 07/01/29(月)読書録。 isbn:4652078145「日本という国」中学生ぐらいが対象か?非常によい。 日本人は読んで考えるべき。学校の社会で何で教えないかな。isbn:4270001445「まっとうな経済学」最初しか読んでないが、なかなかよい。 07/02/01(木)去年、DotNetNukeを 入れたときは、すんなりいけた。もう一度やろうと思ったら、SQL Serverのsaのパスワードが分からない。 しょうがないので、MSDEの新インスタンスを追加で入れた。 (setup SECURITYMODE=SQL SAPWD="XXX" INSTANCENAME="YYY") で、サーバ名を(local)\YYYにしてうまくいった。07/02/22(木)出張が多い。会社のメールサーバにスパムフィルタを入れたようだ。 毎日数十通も来てたのに、今日は1通も来ない。 会社の法律関係の教育で、テストを受けた。著作権は満点だったが、契約は0点だ。トータルは不合格だ。ううむ。 07/03/02(金)連続系シミュレーションで。 田の字型の部屋があり、各部屋1人ずつ入っている。時計回りに移動することを考える。 1部屋には同時に1人しか入れない。1人ずつ動かそうとすると動かない。同時なら動く。どのようにモデル化するか。 (*)ユニットごとに処理済みかどうかのフラグを用意する。全ユニットを未処理にする。 各ユニットが移動可能かどうか自明ならば処理する。 残りの未処理ユニットから1つ取り出し、移動する。再帰的に処理(*から開始)し、 矛盾が出たら、移動しないで処理済とする。これを繰り返す。 07/03/22(木)K先生の還暦祝い&同窓会。 数年ぶりで会う人が多い。同期はいなかったが。07/04/03(火)ちょっと古い話題だが、 string.IsNullOrEmptyにバグがあるそうだ。正確にはJITコンパイラのバグなので、 string.IsNullOrEmptyを置き換えて済む問題でもないだろう。実際には、普通に記述していれば問題ないようだが。 http://blogs.wankuma.com/ogiogi/archive/2006/12/12/50253.aspx07/04/06(金)ジェネリクスについて。 C++でminを書く場合、自由度は少ない。 C#だといろんな書き方がある。
勉強会で、PostSharp、VSTO 、Wintellect Power Collection 、デバッガビジュアライザの発表をする予定。 新しい try構文を考えた。
07/04/17(火)GetTypeについて。
GetTypeは非仮想なのに、仮想のように振舞う。これは、クラスのオブジェクトが全て型へのポインタを 持っているからである。GetTypeは、このポインタの値を(非仮想で)返すので非常に高速である。 Int32は、クラスではないが、GetTypeはObjectのメソッドなので、呼出すときにボクシングされる。 オブジェクトは、どうせvftblのポインタを持っているのだから、GetTypeを仮想にしてもよかったのに と思うのだが。(GetTypeの呼出しがちょっと遅くなるだけで、メモリ使用量は減る) いろいろやっていると、忘れるのでメモしておこう。提案だけで受注してないのも混じっている。
「データベース」のは、国際学会で発表。多重無線は制約条件が厳しい。 積付けシステムは、学会で賞をもらった。光ネットワーク網は、非線形混合整数計画問題に 定式化して10ページぐらいになった。3次元パッキングのコンテナは、立方体以外にも数種類の形状あり。 最適リソース割当は、大規模で出力ファイルはギガクラスだ。 07/04/18(水)「3つの質問」の ゲームを作ってみた。http://plaza.harmonix.ne.jp/~fakira/turedure/ThreeQuestions.zip 著作権で問題があれば消すので、コメントに書いて下さい。 07/05/11(金)VSTOではまったこと。 普段、管理者権限で開発しているから気づかないが、利用者が制限ユーザだと、VSTOがインストールできない。 インストールだけ、管理者権限で実行してもらったが、制限ユーザで利用できない。インストール時に caspolでセキュリティの設定をしているのだが、インストールしているユーザにだけ設定していたためだった。 直して、無事に制限ユーザでもVSTOができるようになった。別のバグ。1つのメソッドを2つの状態で使用できるようにしていた。半年後に機能の修正をしたが、1つの状態でしか 対応していなかった。結局、もう1つの状態(特殊なのでたまにしかおきない)でバグった。 別のバグ。座標の原点の仕様が変わり、ロジック部に手を入れずに、入出力で変換するようにした。単純なスペルミスで 右の値と左の値を間違えていた。基本的に右と左は同じ値を設定するので、しばらく気づかなかった。 学会の委員会の初会合。終わってから先生方と飲んだが、なかなかよかった。 07/05/15(火)セキュリティ強化。 社外に持出すノートPCは、基本的に営業情報は入れていなかった。さらに社内に置いてあるものもセキュリティ強化する ことになった。具体的には、TrueCryptを利用する。100GB単位で暗号化して使っている。07/05/16(水)パズル。 3軒の家に、各々水道、電気、ガスを引く。(計9本の線) http://www.supuzzle.com/ http://plaza.harmonix.ne.jp/~fakira/turedure/supuzzle.JPG07/05/21(月)世阿弥の 「花鏡」の初心忘るべからず。この後、「是非の」「時々の」「老後の」と続く。 私なりの解釈では、最初が肝心、中も肝心、終わりも肝心といったところか。「初心を忘れない」とは「常に、一生懸命、物事を成す」ことだと思っている。 07/05/23(水)子供が赤ん坊の ころ、つねられたら異様に痛かったが、4,5歳になるとそうでもなくなった。これは、意識的にコントロールできるようになったからだろう。 赤ん坊は何も考えず、いつでも火事場の馬鹿力のようだ。07/05/28(月)Newtonの最新号で、 光のしくみを立読みした。光は電磁波である。観測装置が粒子に反応するので、粒子の性質を示す。 納得した。でも電磁波とは何だろう。電子よりずっと小さい粒子なのか?07/05/30(水)Googleの画像検索で &imgtype=faceとつけると顔が出やすいそうだ。やっぱりGeekはGoogleのオプションとかすらすら手打ちできるのだろうか。
WindowsアプリをSDIで作ることが多い。ファイルフォーマットはXMLだ。ファイルサイズが気になるなら、
数行書くだけで、圧縮もできる。
07/06/06(水)この前、SONYの携帯プレーヤーを 買おうと思って行ったら、何故か、ワンセグの見れる gigabeat を買ってしまった。 通勤では、音楽を聴くより、深夜TV番組の録画ばかり見ている。PCに落とせないので、見たら消すしかないのが残念。 ちなみに、携帯プレーヤーを買うのは生まれて初めて。07/06/15(金)携帯は、基本的に マナーモードにしている。実際には携帯が振動していないのに、振動したかのように 感じる人がいるそうだ。私もそうだ。記事では、錯覚のように書かれていたが、 私の場合、血流のブレのせいだと思っている(携帯は、胸ポケットに入れており、 心臓のすぐ近くだ)。別に不整脈なわけではないと思うが。 携帯を持つ前は、そのようなことはなかったので、胸付近での振動に敏感に反応するようになったのだろう。07/07/02(月)新年度だ。2人増えた。記憶を消す薬ができたらしい。SFみたいだ。 私は、都合の悪いことは忘れることが多い。 円周率は100桁覚えて、必要もないのに30年近く覚えている。 麻雀の点数計算は、20年以上やっているが、覚えなかった。 07/07/05(木)読書録。 「数学的にありえない」isbn:4163253106 が面白い。「月に繭 地には果実」isbn:4344007654 は、50ページぐらい読んで、ガンダムの話だと気づいた。
ノーヒントクロスワードが得意だ。 07/07/09(月)年度の初めに、 ちょうど、名刺の在庫が空になった。1年で1箱(200枚)使っている。07/07/11(水)「どう書く?org」に いろいろ出してみた。「コメント削除」は、慌ててたので無駄なことを書いている。文字の比較は、String.StartWithを使えばよかった。 正規表現は、2回もする必要なかった。 http://ja.doukaku.org/ 07/07/18(水)ようやく、gigabeatが 修理されてきて戻ってきた。 修理というより、本体が交換されて、データも移動されていた。 ただし、以前のワンセグの録画データは見れなかった。 これは、本体が変わったため復号化に必要な本体識別コードが変わったためだろう。 新しく録画したものは見れた。ワンセグ以外のデータは問題なく見れた。 ワンセグに限らず、ある程度情報の劣化した画像や動画は著作権の対象外にしてもいいんじゃないかと思う。 例えば、160×100ピクセルに縮小したら、コピーフリーにするとか。07/07/19(木)「ダンボール肉まん」は、 TV局の捏造という記事を読んだ。全く信頼できない。 嘘の上塗りにしか聞こえない。 中国産の食品は買うのをやめようと真剣に思った。 中華料理も避けるか。07/07/25(水)動画。 ソニーのMotionPortraitはすごい。モノリスのFrameFreeと組合せると面白いんじゃないだろうか。 どちらも、少ないデータから動画を作成できる。人物のプロフィールとか、建物に応用してナビで見せるとか。 いろいろできんじゃないだろうか。http://www.itmedia.co.jp/news/articles/0707/10/news079.html http://www.monolith-prime.co.jp/
「ひとり言スレ」ですか。この日記もひとり言みたいなものだな。もうすぐ10年だ。 強化学習勉強会では、順調にいろんな課題をプログラミングしている。 07/08/10(金)例によって、 gigabeatで録画した「コマネチ大学」を通勤で見ていた。今週の問題は、 「120度から5度づつ増えていく多角形は、9角形ともう1つは何角形か」。私は暗算で解いて、コマ大は5時間かけて違う答えを出していて 「そこまでして、間違うかい」と思ったものの、間違えたのは私だった。 やられた。 07/08/14(火)OR学会誌の最新号は、 「情報」の教育とORだ。巻頭の中森先生の記事が面白い。例えば、測定データがおかしいときに、 呼ばれた統計学者が「どのような調査方法で取得されたか不明ならば、データを処理することはできない」 「次からは、データ取得後ではなくデータ取得前に呼んでくれ」という話がある。 プロジェクトでも、煮詰まってから呼ばれるよりは、「最初から相談してくれれば」と思うことが多い。 とくに、データ構造やGUIに関しては、?と感じることが多い。 07/08/21(火)出張先から更新。 大阪港の夜景がきれいだ。 次に会社に行くのは9月だ。07/09/12(水)外出が続いたら、 体調崩した。健診で機械の視力測定をした。左目は、1つもわからないまま適当に押してたらそのまま終わってしまった。07/09/21(金)顧客から、「OR学会は 学術すぎる」「自分のやっていることはORではない」と言われた。 貴重な意見である。その顧客は、研究者なので別の学会にはいろいろ発表しているし、 やっていることの一部は確かにORだと思う。しかし、ORやOR学会への印象をよく表していると思う。OR学会は、「ORが実務に役立つ」ことをアピールし、もっと研究者でない企業の人たちを取り込むべきだ。 「学術的」よりも「使える、実務的」と思われるようにすべきだ。 OR学会誌の「ORの図解」を元に勉強会をすることにした。今のところ若人は積極的だ。
「プログラマはマシン語を理解するべきか」で盛り上がっているらしい。
私は、アセンブラのマニュアルを、本の角がとれてボロボロになるまで、読んだ口だが、
全ての職業プログラマが理解するべきとは思っていない。でも、マシン語をやったかどうかで
プログラマの厚みが違うとも感じる。 07/10/03(水)ASP.NETで画像を動的に 作成する方法のメモ。
ASP.NETでのクッキーの利用法。 利用 HttpCookie ck = Request.Cookies["MyData"]; if (ck != null) TextBox1.Text = ck.Value; 設定 HttpCookie ck = new HttpCookie("MyData", TextBox1.Text); ck.Expires = DateTime.Now.AddYears(1); Response.Cookies.Add(ck); 07/10/05(金)今回のWindowsUpdateは、 IE7かよ。大胆だな。WindowsUpdateの自動更新やめる人が増えるんじゃないか。07/10/17(水)かかえている仕事と直近の締切りを 書き出してみる。
07/10/30(火)消費税について。 現行5%だが、将来的にはあがるだろう。上げると一時的にせよ消費は落ち込み、景気は悪くなるので、 すぐには上げないだろうが。上げるとすると何%がよいだろうか?個人的には、100/9%を推したい。 理由は、9の倍数の値段の税込み価格が10の倍数になり端数が生じないからだ。 以下のルールを考えている。
07/11/11(日)ブログ10周年記念。 初回記事。 10年分記事。プログラマ30歳定年説なんていうのもあったが、このブログ(プログラミング所感)を書き始めた時点で30は超えていて、 未だに今日も書き続けている。
ニッポンIT業界絶望論 オペレーションズ・リサーチ(OR)の最適化はこれからさらに伸びていくと思う(若手がどんどん入ってくれば)。 そのためには、種々の問題を類型問題に帰着し、汎用ソルバで解くのは有効だろう。 07/11/20(火)ProAtlas SV3 SDKメモ。 サンプルにはC++、VB6、VB(VB.NET)しかないが、C#でも当然できる。但し、初期化は、ifset.ApplyEnvironment("PROATLASSV2", true);としなければいけない。 デフォルトでは、デバッグができない。レジストリに HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\MDA=0 を追加し、ソリューションのデバッグ設定で 「アンマネージコードデバッグを有効にする」をチェックすれば、デバッグできるようになる。 面白そうなのがあったので貼る。
07/12/04(火)OR学会のターゲット について。経営者や法律家や政治家を取り込むようにしたらどうかとの意見をもらった。あるいは、トヨタなどの成功企業から講師を呼んで話してもらうとか。 ORセミナは参加者が少なかった。月曜と金曜はダメらしい。 OR手法は、1度解を出して終わりではなく、それを参考にして人が最終的に作るということが重要とのこと。 AHPでは、多数の候補は絶対評価で絞り、その後、相対評価(一対比較)を行えばいいのではないかとのこと。 AHPで得られた重みをコストにしてナップザック問題を解いたりするといいかもしれない。 AHPの評価尺度に「不確定要素」を入れて、その重みを恣意的に変えることにより、リスク評価できるかも。 AHPの代替案をある尺度(例えば、地域的な偏り)で平準化したいとき、重み和と1/分散の有向フロンティアが欲しい。
子供にLOGOを教えようと思って作ってみた。 07/12/05(水)アドバイス。
07/12/13(木)バイナリサーチにバグの 記事から。http://iiyu.asablo.jp/blog/2006/06/05/393464 int mid =(low + high) / 2;だと、オーバフローの危険があるというもの。 修正は、int mid = low + ((high - low) / 2);とする。 int mid = low / 2 + high / 2; では正しくない。 「(X+Y)/2」を Visual Studio 2005\Projects の下で正規表現で検索したら、200箇所近くあった。 ほとんどは、無関係((n+1)/2など)か変数がdoubuleだ。残りは、描画時のものが多い。2箇所だけ直した。 07/12/18(火)汎用的なバイナリヒープを実装したが、 速度は、SortedDictionaryとほとんど変わらない。キーの値の変更だけわずかに早いが。07/12/20(木)シミュレーションクラスの イベント管理をバイナリヒープにしようと考えたが、単純なバイナリヒープではよくない。 要件として、キー(時刻)が同じなら、スケジュール順に処理しなければいけない。 ソートで言うなら安定ソートのようなイメージだ。 バイナリヒープをいろいろ変えたが、結局うまくいかずあきらめた。07/12/21(金)プロジェクト・ブック isbn:4395241018 が面白い。 p71の話をまとめてみよう。
最近読んだ面白い本。isbn:4862481221, isbn:4163246800, isbn:416660595X, isbn:4061498916, isbn:4837976735, isbn:4569690815, isbn:4526058521, isbn:4254270046, isbn:4893086715。 プログラミング所感 - 前へ 目次次へ |