メモの日々


2007年07月02日(月) [長年日記]

  • 職場の部門の飲み会に参加させてもらった。部が大きくなって人たくさん。
  • コンビニに近代麻雀あったのでアカギ読んでみた。麻雀の漫画だった。

[サッカー] U20ワールドカップ 日本vsスコットランド

ワールドユース改めU20ワールドカップカナダ大会開幕。日本の先発は

           河原(新潟) 森島(C大阪)
                 柏木(広島)
     梅崎(大分)              田中(新潟)
                青山(名古屋)
安田(G大阪) 福元(大分) 槙野(広島) 内田(鹿島)
               林(流通経済大)

こうかな。試合を日本が支配するとても楽しい展開。が、シュートを打てどもなかなか得点が入らない。スコットランドはFW一人上手かったが他はたいしたことない。

河原は動きよく決定的シュートがいくつもあった。森島はあんなもんか。柏木はミスが目立った。梅崎はキレキレ。田中は平凡。青山はよくカバーしていた。安田はフィジカル的に見劣りするがよく動き頑張っていた。対して内田は守備の安定感あったが攻撃イマイチ。槙野は体を張り福元はうまくカバーしていた。林はキック力がある。右サイドからの攻撃ももっと見たい。

やること

  • 岡三
  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月03日(火) [長年日記]

[c++] boost::program_options を使う

設定ファイルの読み込み処理を作りたくて、boost::program_optionsが使えそうなので試してみた。boost::program_optionsはどちらかというとプログラムの起動オプション処理を作るためのライブラリみたいなんだけれど。

サンプルプログラム

動かしてみたプログラムをメモ。

#include <boost/program_options.hpp>
#include <fstream>
#include <iostream>

namespace po = boost::program_options;

int main(int argc, char* argv[]) {
    // options_descriptionにオプションを定義していく
    po::options_description options("オプション");
    po::options_description command_line("コマンドライン");
    po::options_description config_file("設定ファイル");

    //--- オプションの定義は、operator()をどんどん繋げて書くみたい ---

    command_line.add_options()
        // 値を持たないオプション
        ("help", "ヘルプの表示")
    ;

    std::string option3_value;
    config_file.add_options()
        // オプションの型を指定できる
        ("option1", po::value<int>(), "オプションその1")
        // デフォルト値を指定できる
        ("option2", po::value<std::string>()->default_value("デフォルト値"),
         "オプションその2")
        // オプションを格納する変数(option3_value)を指定できる
        ("option3", po::value<std::string>(&option3_value),
         "オプションその3")
        // 複数指定可能なオプションを作れる
        ("option4", po::value<std::vector<std::string> >(),
         "オプションその4")
    ;

    // オプション定義を合成することができる
    options.add(command_line).add(config_file);

    // ここにオプションの値が読み込まれる
    po::variables_map vm;

    try {
        // command_lineのオプションをparse_command_lineを使ってパースし、
        // 結果をvmに格納する
        po::store(po::parse_command_line(argc, argv, command_line), vm);

        // config_fileのオプションをparse_config_fileを使ってパースし、
        // 結果をvmに格納する
        std::ifstream ifs("config.txt");
        po::store(po::parse_config_file(ifs, config_file), vm);

        // これを呼び出さないと、上で設定したoption3_valuesに値がセットされない
        po::notify(vm);

        // オプションの有無はcount()でチェックするのが正しい?
        if (vm.count("help") || !vm.count("option1") || !vm.count("option3")) {
            // ヘルプの表示
            std::cout << options << "\n";
            return 1;
        }

        std::cout << "option1: " << vm["option1"].as<int>() << "\n";
        std::cout << "option2: " << vm["option2"].as<std::string>() << "\n";
        std::cout << "option3: " << vm["option3"].as<std::string>() << "\n";
        std::cout << "option3_value: " << option3_value << "\n";
        std::vector<std::string> option4
            = vm["option4"].as<std::vector<std::string> >();
        std::cout << "option4 size: " << option4.size() << "\n";
    } catch (std::exception &e) {
        std::cout << e.what() << "\n";
    }
}

ビルド方法

ビルドする際は、次のようにしてboostのライブラリをリンクする必要がある。

g++ option.cpp -lboost_program_options

実行結果

ビルドできたら、config.txt を次のように

$ cat config.txt
# 行頭に#を付けるとコメントを書けるみたい
option1 = 100 # 行の途中からでもコメント書けた
#option2 = nya-
option3 = wanwan
option4 = gao-
option4 = e-n
# option5 = wahahaha

作っておくと、実行結果は次のようになる。

$ ./a.out
option1: 100
option2: デフォルト値
option3: wanwan
option3_value: wanwan
option4 size: 2

ヘルプの表示

ヘルプ表示は次のような感じ。

$ ./a.out --help
オプション:

コマンドライン:
  --help                 : ヘルプの表示

設定ファイル:
  --option1 arg                       : オプションその1
  --option2 arg (=デフォルト値) : オプションその2
  --option3 arg                       : オプションその3
  --option4 arg                       : オプションその4

デフォルト値に日本語を使ったら、ヘルプの表示がずれてしまった。

その他

あと、試してないけれど、「po::notify(vm);」のタイミングで実行されるコールバック関数を各オプションに設定できるみたい。

参考

やること

  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月05日(木) [長年日記]

  • 仕事はかどらない。悩んでばかりで進まない。
  • KDMくんに会った。大赤字らしい。

[サッカー] U20ワールドカップ 日本vsコスタリカ

眠い。予選リーグの2試合目。日本の先発は前回と同じ。

スコットランド戦のようにはいかない。GK林が足攣っていたけどどうしたのかな。ハリキリ過ぎたのか。前回よかった梅崎はあまりボール触れずも要所でいいプレーはあった。柏木は後ろにいるときはいいのだけれど前線で活躍できない。内田は今回よく上がっていたけど思い切りなくしっくり来ない。守備でも苦戦。安田の方はあまり上がれていなかった。途中で出てくる青木ももっと活躍して欲しいなあ。

やること

  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月08日(日) [長年日記]

[サッカー] U20ワールドカップ 日本vsナイジェリア

予選リーグの3試合目。放送時間がどんどん遅くなるな。日本は先発大幅入れ替え。

    ハーフナー(横浜FM)   平繁(広島)
                   香川(C大阪)
       梅崎(大分)              藤田(札幌)
                   森重(大分)
太田(横浜FC) 福元(大分) 柳川(神戸) 内田(鹿島)
                   武田(清水)

開始直後はよかったけれど、次第にナイジェリアペースに。ナイジェリアはシュートがダメ。香川の素晴らしいゴールが幻となりかわいそう。

やること

  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月09日(月) [長年日記]

  • ガルーン2はいまいちだなあ。サイボウズ Officeの方が好みにカスタマイズできる。

[サッカー] アジアカップ 日本vsカタール

アジアカップも始まった。途中から見たのでよく分からない所もあるけど、日本の先発は

       高原
  山岸 遠藤 中村俊輔
中村憲剛   鈴木
今野 中澤 阿部 加地
       川口

こうかな。走らず横パスばかりの省エネサッカーだった。憲剛はよくやっていたように思うが遠藤にはがっかり。たまに山岸にチャンスがくるがキックの質が劣りうまくいかない。オシム監督は古江に似ているんだなあ。

松木さんの解説に苛々するので音を消して観ていた。U20の方の風間さんとはえらい違いだ。

やること

  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月11日(水) [長年日記]

[web] IEのレンダリングのバグ (2)

4年前にちょっと困ったIEで変な風に描画されてしまう問題の解決策がウノウラボに書かれていることを知ったのでメモ。

padding-bottomを0に設定すれば直るみたい。

あと、ここへのtrackbackから

というページも見つけたのでメモ。

それから、昔のページのリンク先を開いたときに文字コードが正しく指定されていないようなのでそれを直す、ということもメモ。

(追記)

文字コード指定のため、.htaccessに

AddType "text/html; charset=EUC-JP" html

を追加した。これでいいんだっけか。

やること

  • 入庫
  • スーツをクリーニング屋へ
  • ズボンを洗う

2007年07月12日(木) [長年日記]

  • 久しぶりにテスト項目を書いている。面倒なんだけど嫌いじゃないみたい。

[サッカー] U20ワールドカップ 日本vsチェコ

決勝トーナメント1回戦。日本の先発は1,2戦目と同じ。

安田が中にドリブルしてボールを奪われるのが気になった。内田もイマイチ。柏木はボールをよくさばきよい出来だったが、決定的な仕事はできず。梅崎は頼れる。青山槙野も頼れる。青木はダメ。チェコは弱かった。

やること

  • 入庫
  • ズボンを洗う

2007年07月13日(金) [長年日記]

[windows] マウスホイールのスクロール量を調節する

Excel上でマウスホイールを使ってスクロールを行うと一度に複数行スクロールしてしまい不便だった。これを1行ずつスクロールするようにしようと思い、Excel 2003の設定を調べたが変更できそうな箇所は見つからない。

Windowsのマウスのプロパティ画面に「ホイールの1目盛りでスクロールする量」を設定する項目があったので、ここで3になっていた値を1に変更したらExcelは1行ずつスクロールするようになってくれた。

が、こうするとFirefox上でホイールを使ったときにスクロール量が少なすぎて不便。検索して、Firefoxでは

  • mousewheel.withnokey.sysnumlines の値をfalse
  • mousewheel.withnokey.numlines の値を好みのスクロール量

と設定すればマウスホイールによるスクロール量をカスタマイズできることを知った。これで満足。この値はFirefoxを再起動しなくても反映されるみたい。

[サッカー] アジアカップ 日本vsUAE

予選リーグの2試合目。日本の先発は少し変わった。

      巻   高原
   遠藤     中村俊輔
中村憲剛   鈴木
駒野 阿部 中澤 加地
       川口

高原は頼りになる。遠藤今回はよかった。代わりに憲剛のミスが気になった。もっと貪欲に得点を狙って欲しいが、消極的なのはオシムの指示なのかなあ。

松木さん前回よりも落ち着いていて、今回は音声消さずに見続けられた。でも川添さんのしょうもないコメントに何度かイラっときた。

やること

  • 入庫
  • ズボンを洗う

2007年07月16日(月) 海の日 [長年日記]

  • 天気悪くて洗濯できない。

[サッカー] アジアカップ 日本vsベトナム

予選リーグの3試合目。日本の先発は2戦目と同じ。

気温37度だそうな。遠藤が日本代表でFKをちゃんと蹴るのをやっと見られた。次は水野だ。日本が得点してもシーンとしているので反則があったのかと思ってしまう。川添さんが必要以上に湿度情報を提供してくれていた。

やること

  • 入庫
  • ズボンを洗う

2007年07月20日(金) [長年日記]

  • 皆山梨の方へ行ったようだ。

[life] 図書館へ行く

図書館で

  • 半島を出よ 上/下 (村上龍)
  • サッカーマガジン 2007.5.22 「「キャプテンマーク」の誇り」

を借りた。図書館のシステムがダウンしてるとのことで、本の番号を手書きでメモしての貸し出しだった。

帰りに本屋でBoost C++Librariesプログラミング 第2版を買った。

やること

  • 入庫
  • ズボンを洗う

2007年07月21日(土) [長年日記]

[サッカー] アジアカップ 日本vsオーストラリア

決勝トーナメント1回戦。オーストラリアに負けるわけにはいかない。日本の先発は前回と同じ。オーストラリアの先発をメモ。

       ビドゥカ     アロイージ
            ブレシアーノ
カーニー グレッラ カリーナ エマートン
   ビーチャム ミリガン ニール
            シュワルツァー

日本は慎重な戦い方。変なミスはしなくなったなあ。U20のチェコ戦のような展開になる。今野もっと頑張れ。

やること

  • ズボンを洗う

2007年07月25日(水) [長年日記]

[c][dev] m〜nまでの乱数

Cのrand()を使ってm〜nまでの整数の乱数を得るには次の計算で合っているだろうか。

(int)(rand() / (RAND_MAX + 1.0) * (n - m + 1)) + m

n - m < RAND_MAX でないと困りそう。

自信がないので次のプログラムで試した。

#include <stdio.h>
#include <stdlib.h>

int my_random(int m, int n) {
    return (int)(rand() / (RAND_MAX + 1.0) * (n - m + 1)) + m;
}

int main() {
    int i;
    int m = 10;
    int n = 29;
    int counter[20] = {0};

    printf("RAND_MAX=%d\n", RAND_MAX);
    for (i = 0; i < 100000; i++) {
        int r = my_random(m, n);
        if (r < m || r > n) {
            printf("error : %d is returned.\n", r);
            break;
        }
        counter[r - m]++;
    }

    for (i = 0; i < n - m + 1; i++) {
        printf("%4d : %d\n", m + i, counter[i]);
    }

    return 0;
}

実行結果が次のようになったので、計算式は合っていそう。

RAND_MAX=2147483647
  10 : 4918
  11 : 5075
  12 : 4934
  13 : 4998
  14 : 5007
  15 : 5182
  16 : 5044
  17 : 4972
  18 : 5023
  19 : 4885
  20 : 5026
  21 : 5018
  22 : 5033
  23 : 4926
  24 : 5008
  25 : 4917
  26 : 4917
  27 : 5100
  28 : 5011
  29 : 5006

[サッカー] アジアカップ 日本vsサウジアラビア

準決勝。日本の先発は変わらず。気合の入った中澤の表情が印象的。解説にセルジオ越後さんが加わって、悪くなかった。

むしゃくしゃするのでオレの日本代表メンバーを選出するー。

          播戸(佐藤)        高原(前田)
    松井(山瀬,二川)          俊輔(太田,水野)
          遠藤(小野)        阿部(鈴木)
 相馬(中田) 闘莉王(山口) 中澤(岩政) 駒野(市川)
                   川口(川島)

今回一番物足りないのはサイドバックで、左は相馬に期待したい。縦に走れー。右は人材難。加地には可能性を感じない。市川はダメなのかなあ。FWは高原の相棒が問題だがやはり人材難。今なら播戸がいいと思うけどガンバでレギュラーでもないからなあ。得点ランキングを見ると佐藤か大久保になっちゃうのか。達也の復活が待たれる。大黒はどうしているのか。2列目は人材たくさん。野沢も使ってみたいしなあ。パスするだけでなく飛び出せる奴がいいんだけど。遠藤は憲剛の所で使いたい。鈴木は不動の活躍だが阿部を上げる方が魅力あるのではないか。小野もなあ。小笠原は鹿島で機能すれば可能性あるか。センターバックに岩政も試したい。坪井は足痙攣するからダメ。キーパーはよく分からないや。うーん、メンバー選びするなら3バックの方がいいかもしれん。

新聞メモ

7月25日の産経新聞より。

韓国 過熱する海外布教

「韓国にはプロテスタントを中心に人口の約3分の1にあたる1500万人ものキリスト教徒がいるといわれる。」とのこと。キリスト教が韓国でそんなに広まっているとは知らなかった。不思議。

やること

  • ズボンを洗う

2007年07月29日(日) [長年日記]

  • 昨日散髪。
  • 参議院選挙の投票日。昼間は晴れていたのに夜はすごい雷。雷の中投票してきました。
  • 選挙特番ばかり。くだらんな。川田龍平がスポーツ選手のような外見になっていた。

やること

  • ズボンを洗う