さっそく、ubuntu 環境で巡回セールスマン問題を解くクラスを perl 版、php5 版で作成してみました。比較的あっさりと動きました。後で、cmake で swig & php5 な構築をするための手順を書こうと思います。
参考は、これ。
2009年6月5日金曜日
boost::lexical_cast は・・・
こいつは便利だぜ~!と思っていたのだが、実務(仕事)で使って、結構痛い目にあったので、それ以後は lexical_cast を使っていない。boost users ML でも話題に上っていたが、std::atoi 感覚で文字列から数値にコンバートをかけると予期せぬ結果を生む。std::atoi では、スペースをトリミングしなくても正しく数値を読み込んでくれるのであるが、boost::lexical_cast は、スペースが先頭に付随すると問答無用で、0に変換する。いや、この記述は正しくない。実務で lexical_cast を導入した時には、スペースが先頭に付随していても問題なく数値変換が行われていたのである。途中で挙動が変わり、それは iostream に依存するのである。安全性を考えた場合、積極的に lexical_cast を使う理由が見つからない。
もうひとつ、iostream 系の入出力で残念に思う事が、tuple の入出力だ。区切り文字にスペースを利用する場合に、tuple の要素が空だと、もうグタグタになってしまうのである。tuple は使い手があるようにも思えるのだが、どうにも iostream との組み合わせが頂けないのである。
もうひとつ、iostream 系の入出力で残念に思う事が、tuple の入出力だ。区切り文字にスペースを利用する場合に、tuple の要素が空だと、もうグタグタになってしまうのである。tuple は使い手があるようにも思えるのだが、どうにも iostream との組み合わせが頂けないのである。
いろいろ
ブログを書くのが、ちょっとダレてきている。自分の日本語のセンスは最低である。何故なのか考えてみた。結論は、短期記憶力が弱いからではないか?というもの。書いているそばから、書いている事を忘れているのだと思う。だから、文章がぐだぐだになる。よくそれでコーディングが出来るな?と自分でも思う。
ちょこちょこと書こうかな?と思っていた事を思い出してみる。
まず、これからの携帯端末について。飛躍的に通信費が安くならない限り、大容量メモリの少量化によりストック型へと移行するのではないか?という予測。
次に小売業の未来に関して。キーワードは「サービス」で、サービス・サイエンスが重要な時代なのだ。例えば自転車のパーツは通販で買っても本当に自分の自転車に合うかどうかの確信が持てない場合がある。生鮮食品は長距離通販には、今のところ適さない。消費者に何をサービスするのか?という事だ。大量生産品よりも手作りの味噌など、希少価値のある品が復権しても良いのではないか?とも思う。
次が、梅田さんのインタビュー。元から、あまり著者を評価していなかったので、まぁ、そんなもんだろうと思う。一時期の私のS/N比をあげるためのフィルタのひとつが Web2.0を語るやつは偽者。梅田さんの著書は、本人の実体験を語っているような気がしたので「ウェブ時代をゆく」と、まぁ読んでお得だろの「ウェブ時代5つの定理」の2冊、「私塾のすすめ」は齋藤先生の本として読んでいるのでカウントしない。私塾のすすめのコンセプトは、「日本を教育した人々」からあり、こちらの方がメッセージ性は高いと思う。もちろん「学問のすすめ」は、すばらしい。
そして、Swigの経験が役に立ちそうだ。なんかあったらSwig化して、あとは丸投げでけるかも?少々 template が混じっても、誤魔化すノウハウも得ている事だし…。
思い出した・・・BING は Blogger のスコアが低いです。いくら Google 絡みのコンテンツだからって、そりゃねーだろ?という部分が自分としては残念です。悪くはない。あと、Wave は、よくわかんねーです。言うほど凄いとも思えない。技術的に凄くても一般ユーザにわかりやすくないとブレイクスルーはしないと思う。
自転車・・・自転車通勤が不況もあってブームらしい。この間、時速 35km ぐらいでもう一台が前という状態で走っていたら、深夜に車道を右側通行する対向自転車に出くわして、急ブレーキをかけるハメになった。対向車の人が「お前ら反対だぞ」と、アホな事をぬかすので「反対はお前だろ」とつっこもうとしたら、前を走っていた人がキレて叫んでしまった…。自転車ブームになったら、マナーがどうとかコウルサイ事態になりそうだ。その後、前を走っていた人は怒りにまかせて時速 40km ぐらいですっとんでいった。さすがに平地で 40km は出せません…歳を感じました…。
最後、電子ペーパーに期待!見開き型で、曲げセンサが付いていて「ペラペラめくり」の術が使えるやつをキボンヌ。
ちょこちょこと書こうかな?と思っていた事を思い出してみる。
まず、これからの携帯端末について。飛躍的に通信費が安くならない限り、大容量メモリの少量化によりストック型へと移行するのではないか?という予測。
次に小売業の未来に関して。キーワードは「サービス」で、サービス・サイエンスが重要な時代なのだ。例えば自転車のパーツは通販で買っても本当に自分の自転車に合うかどうかの確信が持てない場合がある。生鮮食品は長距離通販には、今のところ適さない。消費者に何をサービスするのか?という事だ。大量生産品よりも手作りの味噌など、希少価値のある品が復権しても良いのではないか?とも思う。
次が、梅田さんのインタビュー。元から、あまり著者を評価していなかったので、まぁ、そんなもんだろうと思う。一時期の私のS/N比をあげるためのフィルタのひとつが Web2.0を語るやつは偽者。梅田さんの著書は、本人の実体験を語っているような気がしたので「ウェブ時代をゆく」と、まぁ読んでお得だろの「ウェブ時代5つの定理」の2冊、「私塾のすすめ」は齋藤先生の本として読んでいるのでカウントしない。私塾のすすめのコンセプトは、「日本を教育した人々」からあり、こちらの方がメッセージ性は高いと思う。もちろん「学問のすすめ」は、すばらしい。
そして、Swigの経験が役に立ちそうだ。なんかあったらSwig化して、あとは丸投げでけるかも?少々 template が混じっても、誤魔化すノウハウも得ている事だし…。
思い出した・・・BING は Blogger のスコアが低いです。いくら Google 絡みのコンテンツだからって、そりゃねーだろ?という部分が自分としては残念です。悪くはない。あと、Wave は、よくわかんねーです。言うほど凄いとも思えない。技術的に凄くても一般ユーザにわかりやすくないとブレイクスルーはしないと思う。
自転車・・・自転車通勤が不況もあってブームらしい。この間、時速 35km ぐらいでもう一台が前という状態で走っていたら、深夜に車道を右側通行する対向自転車に出くわして、急ブレーキをかけるハメになった。対向車の人が「お前ら反対だぞ」と、アホな事をぬかすので「反対はお前だろ」とつっこもうとしたら、前を走っていた人がキレて叫んでしまった…。自転車ブームになったら、マナーがどうとかコウルサイ事態になりそうだ。その後、前を走っていた人は怒りにまかせて時速 40km ぐらいですっとんでいった。さすがに平地で 40km は出せません…歳を感じました…。
最後、電子ペーパーに期待!見開き型で、曲げセンサが付いていて「ペラペラめくり」の術が使えるやつをキボンヌ。
2009年6月4日木曜日
CWindowImplBase へんてこりんな設計
今日は、以下の部分をデバッグしていて、devenv と os レベルでハングしまくりで死にそうになった。前回も、ひっかかったのだが再現性がなくて放置したところだ。
よく見れば、変な実装である。イベント実行中に他のイベントが発生していないかをチェックしているという事であろうか?自分のクラスのインスタンスのメンバ変数にストックしておいて、値が変わっていない事を表明している。確かに・・・しかし、回りくどい。何故こんな事をしなければならないのか?それは、GetCurrentMessage() なる怪しげな関数があるからだ。なんというか、この設計は生理的に受け付け難いものを感じてしまう。しかし、このassertのおかげで、解決が速くなったので感謝すべきか?
結局のところ、WM_PAINT によるメッセージ中に COM アウトゴーイング・インターフェイス=イベントを発生したハンドラから、再描画を促すコードが発行されているのが原因のようだった。しょうがないから、WM_PAINT を実行する部分をフラグによりロックアウトして対処した。擬似コードは以下。
追記:どう考えても変だ。Windowsはイベント・ドリブン型で、メッセージは基本シングル・プロセスで処理され、メッセージ・キューに溜まるだけのはずである。マルチスレッドにイベントを処理していなければ、このような事態に陥るはずがない。IOleInPlaceSiteWindowressImpl 絡みで、m_bWindowOnly = TRUE を設定しているだが、CWindowImplBaseT あたりの動きが不穏すぎて、よくわからない。ATLの設計はCRTPで、しかも変てこりんなので(CExeModuleとCServiceModuleの設計はひどかった)デバッグは勘弁してほしいところだ。
追記:こんだけ、くそみそに書いてて、結局、null アクセスしてただけだったよ…トホホ…。情けねぇ。
const _ATL_MSG* pOldMsg = pThis->m_pCurrentMsg;
pThis->m_pCurrentMsg = &msg;
// pass to the message map to process
LRESULT lRes;
BOOL bRet = pThis->ProcessWindowMessage(pThis->m_hWnd, uMsg, wParam, lParam, lRes, 0);
// restore saved value for the current message
ATLASSERT(pThis->m_pCurrentMsg == &msg);
よく見れば、変な実装である。イベント実行中に他のイベントが発生していないかをチェックしているという事であろうか?自分のクラスのインスタンスのメンバ変数にストックしておいて、値が変わっていない事を表明している。確かに・・・しかし、回りくどい。何故こんな事をしなければならないのか?それは、GetCurrentMessage() なる怪しげな関数があるからだ。なんというか、この設計は生理的に受け付け難いものを感じてしまう。しかし、このassertのおかげで、解決が速くなったので感謝すべきか?
結局のところ、WM_PAINT によるメッセージ中に COM アウトゴーイング・インターフェイス=イベントを発生したハンドラから、再描画を促すコードが発行されているのが原因のようだった。しょうがないから、WM_PAINT を実行する部分をフラグによりロックアウトして対処した。擬似コードは以下。
HRESULT CFoo::OnPaint(HDC hDC) {
if( m_bPaintLockout ) return S_OK;
m_bPaintLockout = TRUE;
...
m_bPaintLockout = FALSE;
return S_OK;
}
追記:どう考えても変だ。Windowsはイベント・ドリブン型で、メッセージは基本シングル・プロセスで処理され、メッセージ・キューに溜まるだけのはずである。マルチスレッドにイベントを処理していなければ、このような事態に陥るはずがない。IOleInPlaceSiteWindowressImpl 絡みで、m_bWindowOnly = TRUE を設定しているだが、CWindowImplBaseT あたりの動きが不穏すぎて、よくわからない。ATLの設計はCRTPで、しかも変てこりんなので(CExeModuleとCServiceModuleの設計はひどかった)デバッグは勘弁してほしいところだ。
追記:こんだけ、くそみそに書いてて、結局、null アクセスしてただけだったよ…トホホ…。情けねぇ。
俺のストレスはマックス200%(devenv士ね)
Visual Studio 2008 も状況は変わらない。インテリセンスいらね。devenv 士ね。
ひでぇーぞ、*.idb が削除できません。このフォルダは、違うプロセスにより…。おいーーーーーっ、devenv のプロセスは終了してるぜよーーーーっ。他に、このフォルダを掴む犯人は、もまえ以外にいない。
今日も multi task manager の刑じゃーーーー。しょっぱなから、こけて、何も出けんのじゃーーーーーーーーーー。ストレス・マックス200%じゃーーーーーーっ。
devenv 士ね。
ひでぇーぞ、*.idb が削除できません。このフォルダは、違うプロセスにより…。おいーーーーーっ、devenv のプロセスは終了してるぜよーーーーっ。他に、このフォルダを掴む犯人は、もまえ以外にいない。
今日も multi task manager の刑じゃーーーー。しょっぱなから、こけて、何も出けんのじゃーーーーーーーーーー。ストレス・マックス200%じゃーーーーーーっ。
devenv 士ね。
2009年6月3日水曜日
devenv hotfix 祭りじゃー
今日もまた、Multi task manager になった。そして、やはり、devenv 。行き着く先は、ディスクチェック。
デバッグ、できないだろーーーーーっ。という事で、HOTFIX の リサーチ開始。sp2 まで待てません。
という事で、見つけたのがここ。
うぉーーーっ、祭りじゃ祭りじゃーーーーっ。
わっしょい、わっしょい、わっしょい、わっしょい。
HOTFIX インスコ祭りじゃーーーっ
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
追記:どれひとつとして、インストールできない。sp2 まだ~?
追記:つか、sp2 じゃん orz... 。 sp3 まだ~?
デバッグ、できないだろーーーーーっ。という事で、HOTFIX の リサーチ開始。sp2 まで待てません。
という事で、見つけたのがここ。
うぉーーーっ、祭りじゃ祭りじゃーーーーっ。
わっしょい、わっしょい、わっしょい、わっしょい。
HOTFIX インスコ祭りじゃーーーっ
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
わっしょい、わっしょい、わっしょい、わっしょい。
追記:どれひとつとして、インストールできない。sp2 まだ~?
追記:つか、sp2 じゃん orz... 。 sp3 まだ~?
2009年6月2日火曜日
商品を買った人だけに風船
あー、あるある。息子に「風船を配ってるみたいだよ。貰っといで」と言ったら、恥ずかしがり屋の息子は、周りをオロオロとする。そのうち、どうも商品を買った人だけに風船を配っているという事に気がついて、「ああー、ごめんよ、何か買わないと風船はもらえないみたいだよ。残念だったねー」と、慰めるというシチュエーション。この辺は、性格によるところが大きいみたいです。ズバッと風船を下さいと言えない分、まぁ、いいか・・・と、そんなにダメージも無い。「風船をください」と言える方が行動力があっていいのではないか?とも思います。
登録:
投稿 (Atom)