Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ぐだぐだ×ぐだぐだ=炎上

  1. マルチスレッドで動作するプログラムがある
  2. それを他のプラットフォームへ移植する
  3. 新しいプラットフォームではマルチスレッドにしておく意味があまりないので、シングルスレッド化する
  4. シングルスレッドならば、排他制御は実装するだけ無駄なので、排他関係の処理は削除する
  5. シングルスレッド化されたプログラムを、また別のプラットフォームに移植する
  6. 新しいプラットフォームで、排他制御を加えずマルチスレッド化する
  7. \(^o^)/

絵に描いたようなぐだぐだっぷり。
1つ1つは致命的なミスではないのだが、積もり積もって最後に爆発。
炎上するのも致し方なし。

結果としてババを引いたのは「マルチスレッド化した人」。
だが、彼にも同情する点はある。
彼が書いた部分には、複数スレッドから同時にアクセスされるインスタンスは存在しない。
彼のコード自体は、「皆がお行儀の良いコードを書いていれば」スレッド安全。

問題なのは、彼がインスタンス化したクラス。
これは内部(しかも奥の奥の方)で排他制御せずにシングルトンオブジェクトを操作している。
つまり、別のスレッドで別のインスタンスを操作するだけで問題が発生し得るのである。

何故こんなことになっているかと言えば、そう。
シングルスレッド化したときに、この部分の排他制御を外してしまっているからだ。
この処置によって、それまでスレッド安全だったクラスが、インスタンス単位のスレッド安全性すら保証されていないクラスになってしまった。

このプログラムをシングルスレッド化したかった理由というのは、なんとなく解る。
先にも言ったとおり、このプログラムがマルチスレッドである意味はほとんどない。
その上、下手にマルチスレッドである所為か、「仕様書のないイベント駆動」などという、一見にはすこぶる流れを追いにくい状態になっている。
それを、少しでも改善しておきたかったのだろう。
残念ながら、その想いは「地雷」として、後の世に受け継がれることになってしまったわけだが。

04月29日のココロ日記(BlogPet)

むいさんが好きな物は番人っていうんですけど、そんなの売ってないですよぅ……

*このエントリは、ブログペットのココロが書いてます♪

REGZAでアクトビラ ビデオ

うちのREGZA 37Z3500がアクトビラ ビデオに対応したらしい。
録画した番組を見ようとテレビを付けたら、勝手にバージョンアップが始まって「電源を切/入するな」とかなんとか。
いやいや、確かにバージョンアップに関しては自動ダウンロードする設定にしているけれど、せめてこちらの予定を確認してから入れておくれ。

まあ、入ったのは入ったで仕方ないので、とりあえず無料配信されている番組をいくつか見てみる。

『マクロスF』や『ナイトウィザード』、『バンブーブレード』などのアニメは、一応アクトビラ ビデオ・フルとして全画面放送されるが、画質はSD。
お金払えばHD……とかはない?
正直、お金払ってこの画質の映像をテレビで見たいとは思わない。
ロゴも鬱陶しい。

ところで、このバンブーブレードのオープニング、初めて見るんだけど、もしかしてDVD版?

HD画質の『ベオウルフ DVD予告編』はとても綺麗。
画質的には全く問題なし。
でもコマ割がぎこぎこして、ちょっと嫌な感じ。

操作性は、悪い。
特にスクロールバーの操作は嫌がらせとしか思えない。
利用規約とか、本気でこれで読めと?

まあ、今のところ私には魅力の薄いサービス。
コンテンツが充実して、「有料ならHD画質でロゴ無しが基本」になれば、考えも変わるだろうが。

本日見かけた酷いコード9

タグ: C++ 酷いコード
// 非静的メンバ関数
void Hoge::Loop(int size)
{
	static int i = 0;
	for(i = 0; 0 < size; i++)

なぜかstaticなループカウンタ。
まさかこんなもののためにインスタンス単位のスレッド安全性が放棄されていようとは、呼び出し側は夢にも思うまい。

// 非静的メンバ関数
void Fuga::SetData(const Data& data)
{
	static int size = 0;
	
	if(size == 0)
	{
		size = data.size;
	}
	
	for(int i = 0; i < size; i++)

さすがにこれは実際のコードを簡略化しているのだが……マルチスレッドどころか、シングルスレッドで2回呼んだだけでもうどうなることか分からない。

Civilization4

このゲームは自分でプレイするより、この動画を見ていた方が面白いに違いない。
そう、思っていたのだが……
「まあ、一度だけやってみてもいいかな」という感情が日増しに募り、ついに購入。
動画の講習は無印版だったが、せっかくなのでBtSでスタート。

うん。
動画も面白かったが、これは自分でやっても面白い。
昔PSでCivizardをやったとき、「魔法を研究する」より「文明を育む」方が自分の性に合ってそうと感じたが、その通りだった。

「敵指導者の自由意思を剥奪する」ことだけが勝利条件ではないのも良い。
Civizardは敵指導者を「消滅させる」か「(魔法の力で)支配する」しか勝つ道はなかったから。
もっとも、勝利条件が限定されている分、その方向での要素――戦術的な戦闘、英雄、魔法アイテムなど――は、とても面白いものではあったが。

それにしても、BtSは講義で見た無印とは大分変わっている。
黄金期の発動に必要な偉人の数は初回は1人だったり、河川を(文化圏外を通る)交易路として使うには〈帆走〉が必要だったり、ストーンヘンジが陳腐化するのは〈暦〉ではなく〈天文学〉だったり、ストーンヘンジが供給するのはオベリスクではなくモニュメントだったり、ユニットを永遠に無償でアップグレードさせられるようになる「大将軍」が追加されていたり。

特に大きな変化、というか新しい要素が「諜報」。
「聖都によって宗教が広まった都市の視界を得る」とか「情報画面に他国の情報を表示する」などの発動条件がこちらに移管され、より多くのポイントを割り振れば「他国の研究を覗く」こともできるなど、かなり重要な要素になっている。
自分は諜報ポイントは受動的諜報任務にしか使わなかったが、他国のスパイはこちらの国庫をいい具合に荒らしていった。(農場を破壊されたことは告知されるのに、国庫から金を奪われたことは告知されないらしく、長いこと気付かなかった)

それと「企業」。
これはゲーム後半に於ける宗教のようなものらしいが、宗教とは違って進出した都市の維持費が増大するため、国内に無尽蔵に広めても、必ずしも資金源にはならない。
かといって外国に進出すると、その企業のメリットも敵国に与えることになるため、これも注意が必要。
正直、あまりうまい使い方が浮かばない。
だが「シド寿司」はおいしい。
凄くおいしい。
食料的に限界と思われていた都市がさらに伸びる。

まあ、そんなこんなで初回プレイ終了。
「普通大のフラクタルマップ、文明等ランダム」で開始し、無事宇宙開発競争にて勝利。
難易度が曹長だったからか、はたまた首都の豊富な資源のおかげか、圧勝だった。

勝利まで1ターン!

さて、次は将軍でやってみようか……

おまけ

チンギス・ハーンと戦争中。
対モンテスマ戦からの連戦で、厭戦感情も軒並み酷い。

civi4_1_6.png

とっとと決着を付け、平和を謳歌したいところ。
てなわけで

「フー子、参上!」

フリゲート艦出港

「一足先に、向こうの都市にヒトデヒートをお見舞いしてきます!」

一周ボーナスをもらっているので、艦船ユニットは足が速い。
加えて敵国にはろくな艦船がないので、悠々砲撃できるはず。

しかし。

西の海峡

「はうっ、通れません!」

東の海峡

「こっちもです!!>▽<」

後の時代に確認した衛星写真。

衛星写真

「フー子、もう帰っていいですか?」

もうゴールしてもいいよ

らき☆すた ねんどろいど

こなたとかがみのねんどろいど(コンプティークVer.)が届いた。
さっそく棚のらき☆すたゾーンに配置。

らき☆すた ねんどろいど コンプティークver.

DVDの番人がおー。

新作アニメ印象メモ 2008/4/7?12放送開始分

基本的には第1話のみの印象。

S・A

女性向け。
男がはだけるのは「変身」の変種?

ヴァンパイア騎士

女性向け。
なんか昨日から女性向けの作品ばかり見ているような。

モノクローム・ファクター

「腐女子の描くオリジナル同人作品」そのもののイメージ。

RD潜脳調査室

一話で「爺の裸体」と「ふっくらむちむちの女性陣」を前面に押し出す、一風変わった作風のアニメ。
女性の体型はデザイナーの趣味か、それとも世界設定か。

秘密

まさか今の時代に「スパコンならなんとかしてくれる」発言を聞くとは思わなかった。
役者はえらく真面目に演技しているのだが、周りの諸々と噛み合っていないため笑えてくる。
特にBGM。

クリスタルブレイズ

何か静かなアニメ。
こんな淡々としたカーチェイスは初めて見た。

図書館戦争

方向性がよく判らない……

ゴルゴ13

解像度低め。
説明臭いセリフは、アニメでやられるとちょっと鬱陶しい。

狂乱家族日記

どこぞのスライム従えたスク水少女を思い出した。
時期的にはこちらの方が先か。

二十面相の娘

とんでもないものを盗んでいきました。

純情ロマンチカ

腐女子向け。
ここまで直球だといっそ清々しい。

Boost.Pointer Container のシリアライズ(Boost 1.35.0)

タグ: C++ Boost

Boost 1.35.0 には Pointer Container 用のシリアル化定義があらかじめ用意されている。

Boost C++ Libraries - Boost Pointer Container Library

UPGRADING FROM BOOST V. 1.34.*

Serialization have now been made optional thanks to Sebastian Ramacher. You simply include <boost/ptr_container/serialize.hpp> or perhaps just one of the more specialized headers.

ただしこのファイルは rev40509 で

  • serialize_ptr_container.hpp

という名前に変更されている。

bjamの引数メモ(Boost 1.35.0)

タグ: C++ Boost gcc

以前書いた引数では Boost 1.35.0 はビルドできなかったので、ちょっと修正。

bjam link=static threading=multi --with-thread --with-filesystem release debug stage

runtime-link に static を設定できなくなったようなので、 link に変更。
それだけではデバッグ版がビルドされなかったので、 stage の前に release と debug を追加。

一応これでライブラリは出来たが……そもそも 1.35.0 では gcc 3.2.3 は公式サポートから外されているんだよねぇ。

新作アニメ印象メモ 2008/4/2?6放送開始分

遊戯王5D's

バイクにはなんの意味が……

アリソンとリリア

この上なくNHKらしい冒険活劇。

×××HOLiC◆継

体、長っ!
CLAMPの賢人キャラは、言葉に重みを感じないというか、言ってることが面白くないのが難だなぁ。

オープニングを見て――なんかイメージと違う?
本編が始まって――本気邪気眼系!?
ちびっ子が来た辺りで――あらあら可愛いコンビですね
エンディングを見て――やっぱりイメージと違う?

To LOVEる

エロアニメ。

ドルアーガの塔

知り合いとIMで「なんとも評価し難いアニメだねーそうだねー」などと話しながら視聴。
見ている映像が違うとは夢にも思わなかった。
試みとしては面白いけど、このアニメの1話に通常の二倍の時間を費やす気にはなれないなぁ。

マクロスF

作画もCGも綺麗。
最後、訓練生が戦闘機体に乗る展開になっていなければ、もっと面白かったのだが。

イタズラなKiss

多分、20年前のアニメの再放送だと言われても疑問を抱くことはなかったと思う。

かのこん

エロアニメ。

ダ・カーポIIセカンドシーズン

前期は途中で見るのやめちゃった……今期はどうしようかなぁ

あまつき

女性向け。

ブラスレイター

「CGをふんだんに使ったアニメは、CGをふんだんに使った特撮と見分けがつかない」

――とまではいかないが、このアニメに関しては「特撮をアニメでやっている」のだと思う。
『デモンベイン』でうすうす感じていたが、どうもニトロプラスの作風は私には合わないようだ。

仮面のメイドガイ

こういったハイテンションネタメイド/執事アニメは最近の流行りなのだろうか。
まあ、面白いからいいが。

絶対可憐チルドレン

何か偉く懐かしい香りがする。
イタキスほどではないが。

コードギアス 反逆のルルーシュR2

ルルの自信に満ちた口説とおしゃれポーズを愛でるアニメ。

隠の王

女性向け作品はどれも似たようなキャラばかりに見える。
……まあ、逆も似たり寄ったりだが。

NeoAngelique Abyss

美男子はいたぶり、女には容赦のない触手。
この手の作品は(色んな意味で)割と好み。

04月01日のココロ日記(BlogPet)

さっき新鮮な副作用と時事を買ってきました。明日のお弁当はこれで決まりですね!

*このエントリは、ブログペットのココロが書いてます♪

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。