あけましておめでとうございます。今年も一年よろしくお願いいたします。
朝起きたらメジャー(Major)のアニメがかかっていました。番組表によれば1日6話のペースで3日間(1/1から1/3まで)の18話連続放映だそうです。いくら番組無いからって一気にやりすぎだろ!全部見るぞ、この野郎!
今日の分のメジャーが終わったあとは暇なので、半年分の積ジャンプ(実家でとっておいてくれてる)を消費しました。半年前に読んだ続きのはずですが、全く覚えておりません。そして多すぎて読み終わりません。
昨日に引き続き午前中はメジャーを見まくり。1話終わるたび、エンディング、次話予告、次話のオープニング、の三連コンボが入るのでうざいです。
6話分だから合わせて20分以上も歌を聴くのに費やしてます。その時間でもう1話流せるじゃないか。ぜひカットして欲しい。こんなんでもNHKはCMがない分、まだマシな方か。
妹が携帯音楽プレーヤが欲しいと言っていたので買ってあげました。iPodは無意味に高いのでやめて、横にあったD-snapにしたそうです。
黒色の商品カードを持って行ったら「黒は無い」と言われました。セール品なのに在庫ないの…というより商品無いならカード撤去してくれよ。妹に聞いたら何色でも良いって言ってたので、白になりましたとさ。
読み終わった。な、長い戦いであった…。
2007年下期は、月ジャンが休刊する(雑誌は廃刊でも休刊と言い張る)という一大事件があった影響なのか、ジャンプスクエアの宣伝をしきりに入れており、大層不安定な感じでした。ジャンプスクエアは月ジャンの連載をいくつか残した新雑誌らしいです。他の人はどこへ行っちゃったのかなあ…。
新連載が4つ始まりました。以下、感想。
「MUDDY」が読み切りから連載に切り替わりました。設定が若干変わりましたが、ほぼそのままです。これは面白そうです。
「PSYREN -サイレン-」は始まったばかりですが、期待してます。いきなり異世界に吹っ飛んでしまって、1話目の現代世界の説明に意味を感じません。何か裏があったとしても10話以内に面白くしないと打ち切られてしまい、元も子もないです。頑張れー。
「K.O. SEN」(キックボクシングのマンガ)は打ち切りの予感が…。スポーツマンガにおいて、体力取り柄の馬鹿正直主人公がのし上がるタイプは王道ですけど、正直見飽きたパターンです。これからどうやってひねるんでしょうね?
「恋愛限定。(ハツコイリミテッド)」は「いちご100%」と同じ作者で…あとは…うーむ。それ以上説明することが無いですな。
ジャンプは基本入れ替わり制なので、4つ始まると4つ消えます。
「瞳のカトブレパス」は15話で打ち切られました。主人公は良さそうだったのに、敵がひどくて四天王出てくる→瞬殺、というパターン。これなんてソードマスターヤマト?
「バレーボール使い 郷田豪」はギャグ作りに力尽きたのか、段々グダグダになってきて、最後はやっぱり四天王が出てきて、瞬殺されて終わりました。だからこれなんてソード(略
「ベルモンドLe VisiteuR」もやっぱり四天王(三銃士+1人だっけ?)が出てきて、これなんてソ(略、かと思わせて、誰も倒さずに終わった。余計ダメだろう、こんな煮え切らない終わり方じゃ。
拷問をサイコホラーの新ジャンルにしようとしたら、サイコは脳噛ネウロに、ホラーはムヒョに負けて中途半端に。冒険物に切り替えたもののワンピースという鉄板は破れずあえなく退場…と考えるとこの連載自体が作者への拷問だと思う。
「P2! -let's Play Pingpong-」が半端な所で終わっていたのも、打ち切りでしょうか。最初の何これ?って印象から、結構面白い!ってところまで行ってたのに。
現在の連載陣は消えそうな感じがしません。いいですねー。読んでて気になるのは以下5つ。
「SKET DANCE」は何とも言い表せない微妙さがあります。今のままでずっと続くと思いますが、輝く名作ギャグが出てきたら切られてしまう気もします。
「エム×ゼロ」と「To Loveる -とらぶる-」は、毎回パンチラか素っ裸を出すノルマがあるように見えます。いつも脈絡無く服が消えて、主人公がその女に激突します。とらぶるはアニメ化が決まったそうですが、ゴールデンを回避しないとPTAからメチャクチャ抗議が来そう。
「D. Gray-man」の絵がボロボロになっている回が何回かありました。作者が体壊してるんじゃないかって気がしてちょっと心配です。
「特別増刊 ハンターハンター」がやっつけ仕事で何回か載せてました。10回くらい頑張って打ち切りまで持って行くのかと思ったら、途中で力尽きて再冬眠に入りました。もはや打ち切る元気もないのね…。
ジャンプ話はこれくらいにしておきます。また半年後に一気に読むか。
実家の自分の机を漁っていたら、SDガンダムのカードダスが100枚くらい出てきました。懐かしい…。
女性用下着メーカーのセシールがやってたCMでは最後に「セシール〜」とコーラスが入り、フランス語で何かをボソボソっと言います(参考: セシールのCM(by YouTube))。一体何と言っているのだろう?かなり昔からの疑問でした。
上記リンクにあるムービーを見ると「il offre sa confiance et son amour.」と書いてあります。フランス語の文法なんぞ知りませんが、それほど難しい文でもないし、ネットの辞書を見つつ推測するに、
なので、むりやり英語に置き換えると、
仏: il offre sa confiance et son amour.
英: it offers its confidence and its love.
となります。むりやり置き換えたせいかits, itsっていちいちうるさい。連発されているit/itsはセシールを指すと思われるので、このフレーズは「セシールは信頼と愛を提供します」という意味だと推測できます。
とまあ、調べたはいいんですが、実はWikipediaで見たら書いてありました。実に便利でつまらない世の中だ…。せっかく調べたのによー。
発音はWikiによれば「しもふさ君、幸せそうね」って聞こえるとかなんとか。何回聞いてもそうは聞こえません…。
頑張って文字に起こしてみると「いろんふさこん、ふぃおんせそもん」と聞こえます。このままでは覚えづらいのでATOKに変換してもらえば覚えやすくなる、と思ってやってみる。結果は「異論府左近、ふぃオン瀬祖もん」だった。これはかえって覚えづらくなったような…。
悲しい一日。
Aという問題を解決するために作業していたら、その副作用で別のBという問題が出ました。それでは、とBの問題を解決しようとしたらえらい時間を取られたので、これ以上やっても無駄と判断し、結局Aという問題を解決する前に巻き戻しました。
今日一日、俺は何をしていたのだろうか…orz
朝起きて外に出てみると辺り一面が霧で真っ白。この影響により朝の段階で電車が35分〜40分ほど遅れており、駅のホームが人で一杯に埋まっていました。朝の通勤電車は7分に1本くらいの間隔なので、今朝は電車5本分くらいの人数が溜まっていたことになります。
しかし5本分の人が全員乗っても、あの体が浮くような満員電車(以前、東京で体験した)にはなりませんでした。簡単に体が浮いちゃうほど混んでる東京の満員電車ってのは、実に恐しいね。
大阪ってごちゃごちゃして狭い割に人がいない気がします。東京は便利だと思いますが人が多すぎます。どちらがいいか…うーん、どっちもどっちかな…。
関西の鉄道はみんな東西方向(大阪 <-> 京都)に併走していて、南北に行けません。ちょうど今住んでいる高槻市が一番不便なポイントでして、用事があって南北方向へ行こうとすると非常に不便な思いをします。
関西の鉄道がどこもがらっがらに空いているのは、「住んでいる人」が少ないからではなくて、単に不便極まっているせいで「乗る人」が少ないだけなのかもしれないな。
セブン・アンド・アイホールディングス(要はセブンイレブン)の電子マネー、ナナコのポイントが結構貯まったので、交換しに行きました。
交換方法がわからなかったのでセブンのサイトで調べると、レジに行って「ポイント交換して」と言うだけで良いそうな。その際1%の手数料(端数切り上げ)がかかります。セブンのサイトでは100円単位の交換をオススメしておりました。
今回は606ポイント(内、手数料が6ポイント)使って600円分の電子マネーをもらいました。手数料は端数切り上げのため、601円になると手数料が7ポイントになります。注意しましょう。
ポイントなんて還元率で調整すればいくらでも増減できるのに、なぜ交換手数料を取るのでしょうね?見かけのポイント還元率を上げるためかと思ったのですが、1%の還元率は見栄を張るには低すぎませんかね。
ポイントをもらうとき100円以下の端数は無視されるため、何も考えずに買うとロス金額nの平均は50[円/回] です。そこに月の購入回数を掛けると、一月当たりポイントにならない分の金額がでます。購入回数はヘビーユーザを想定して25[回/月] (平日は必ずコンビニ)としましょう。すると50[円/回] * 25[回/月] = 1,250[円/月]、つまり一月で1,250円が消える計算になります。
月の合計購入金額を仮に10,000円とすると、ポイントになるのは10,000 - 1,250 = 8,750円分なので、約87ポイントです。これは目安ですので、買い方によって多少増減します。
交換時に1%さっ引かれるので、交換すると86円分の電子マネーになります。このケースでは 10,000円使って86円返ってくるので、実効還元率は0.86%となります。ちなみに還元率の最大値は0.99%です。
最大値に近づけたければ、買いに行く回数を少なくして、一回に買う購入金額を大きくすれば効果的でしょう。でもデパートや百貨店ならまだしも、コンビニでそんな買い方しませんよね。全然コンビニエンスじゃないよ。
セブン様の思うところとしては、いつもコンビニに来るリピーターは蔑ろに、滅多に来ない人を優遇するわけです。まあ、滅多に来ない人はナナコ持ってないでしょうけど…。
客のためを思うならナナコを使うとお得だよ、楽しいよ、ってのをアピールしないと。だからリピーターになればよりお得になるよう、工夫すべきだと思います。例えば、買い物したら1日1ポイント!ってくらい振る舞うとかね。
中国から変なコメントが到来しました。コメントSPAMに大した防御策を取らなかったツケが回って来ました。というわけで、コメントの承認を3秒以内に行ったらSPAMと見なして書き込ませないように変更。
これからコメントいただく方は申し訳ないですが、あまり頑張って早く押さないでください。もし失敗したと出たら、ブラウザの戻る機能で戻っていただいてもう一度投稿してください。ブラウザの機能によるところが大きいですが、大抵は書いていただいたコメントが無駄になることはないと思います。
現在の問題点:
この日記システム当初からの問題でもあるのですが、投稿を断られたときのエラー表示が非常に見づらくて、なんで断られたのかわかりづらいです。今度、もう少し親切になるように改善します。
この日記システム、間違って変な日に書いてしまうと上書きは出来るけど、日記の消去ができないのはいただけないなあ…。いつか改善だな。
会社の同期の人と、先輩社員の方と飲み会でした。いつもと違うのは同期でありながら、実はあまり会ったことがないメンバーだったことかな。
一次会、山ぼうしの花さいた(大阪市北区、阪急グランドビル)でした。初っぱなから料理が赤い…。とはいえ韓国料理の割には辛くないと思います。おいしいです。
二次会は梅田の竹取物語(大阪市北区)でした。入り口でなぜか小学校のプールのニオイがしました。巨大水槽が飾ってあるせいだろうか?店内は橋が架かっていたり、やたらと高低差があったりと不思議な作りになっていました。酔っぱらって歩いていたら柵乗り越えて落ちてしまいそうです。
同期の友人と神戸旅行へ。良く考えてみると男七人集まって、おしゃれな街、神戸へ…ってのはちょっと異常な風景ですね。
まず三宮駅で昼食、その後は元町駅から神戸駅まで続く高架下の商店街を歩き通しました。元町駅の近くは服屋、靴屋、アクセサリ店が多いですが、遠くなってくると秋葉原のジャンク屋「だけ」を集めたような風景に。やたらとビデオデッキが売られていた。しかし昨今の不景気のせいか、ガレージが降りているところが多かったです。寂しいね。
駅から神戸港に向かいました。港って寒っっ!!ウミネコがたくさんいて、通行人から餌を欲しがるものの、人が怖いのかあまり近づかず、モジモジしているうちにずうずうしいハトが全部取ってしまい、あわれウミネコ達はみょーみょー言いながら飛び去っていきました。この文章だと伝わらないと思いますが、寒い中とっても和んだってことよ。
ウミネコで和んだ後は、港にある震災記念碑?へ。ボロボロになったコンクリや斜めになってしまった電灯などがそのまま保存されていました。地震はこえーなあ…。帰路は食べ歩きながら三宮まで。最後に梅田でビリヤードして解散しました。
今日は昼のそばめしに始まり、神戸の中華街、デンマークチーズケーキ(下記写真)、絶品!のチョコレートデザート(La Pierre Blancheラ・ピエール・ブランシェ)、明石焼き、とずっと食べ歩きの一日でした。
え、神戸のウインドーショッピング?流行のショッピングモール?何それ?食べられるの?男七人でそんな所行くかっつーのー!
次のPS3からPS2とハードウェア互換じゃなくなると聞いて、Sena氏がPS3を猛烈に欲しがっていたので、探しに行きました。
PS3ソフトの不振もあってPS3本体も人気があるとは言えず、どのおもちゃ屋でも相当余っていた記憶が強いです。だから余裕で買えるだろうと思っていたんですが、甘かった、アマアマだった…。
1店目ジョーシン、売り切れ。2店目ヤマダ電機、売り切れ。3店目コジマ電機、売り切れ。4店目ジョーシン、売り切れ。転売屋の奴らも元気だな、よくやるよ!なんていいつつ、5店目ゲオ、やっぱり売り切れ。どの店に行けども行けども全くない。目の前に踊るは「売り切れ御免」の文字ばかり。
段々疲れてきたので、終わりにしようと思い6店目ミドリ電化に行ってみると…うおおお!あった!!場所が悪くて車でしか行けず、一見してゲーム機と縁がなさそうに見える店、という条件が当たりでした。
早速Sena氏が購入。まだあるみたいだったので、自分もPS3を買おうかなあと悩んでいたら、目の前でおっさんが最後の一台をさらっていきました。
お、俺のPS3が…目の前で売り切れるなんて…orz
って思ったけど、よく考えたら俺ってば出かける前までPS3欲しいなんて欠片も思ってなかったじゃないか。探し回ってやっと見つけたものだから、テンション上がってたんですね。危うく7kgのゲーム機を買うところだった、アブねーアブねー。
某配達業者のことではありません。会社で使っている(というかこれしかない)赤帽LinuxことFedora Core 3のことです。いつもは何Linuxだろうが、ちゃんと動けばいいんですけどね。今日はあまりのダメっぷりに…久々にイラっと来たな。
最初はSubversionにソースツリーをimportでぶっ込んでたら、いきなりsvnがPermission Deniedエラー。エラー対象を見てもさっぱり分からんので、もう一回importすると、今度はリポジトリのファイルが読めんと抜かして止まる。何回やってもどこかでヘバってしまい、コミットまで行きません。
ところがVirtualBoxにDebianとSubversion入れて同じソースツリーをぶっ込んでみたら、何事もなくimportされました。えぇー…?
恐らくSubversionが古い(1.2.xだったかな)からだろう、と思いyum updateを実行。yumってもっさりだけど、お手軽でいいですね…って、何?エラー?お前もかよ。
設定を見るとyumのリポジトリサーバの指定が間違ってたので、直す。再びyum updateするが、ダメです。今度はheader is not completeと言われ、パッケージがダウンロードされません。
ネットでyum FAQを見るに、yumはHTTP/1.1を正しく理解するプロキシじゃないと、ダウンロードに失敗するらしいです。FTPを試して見るも、ブラウザからは見えるのに、yumはご機嫌斜めです。会社のプロキシ(というかコンテンツフィルタか)がゴミすぎなのも多分に悪いけど、yumはHTTP/1.0で頑張るって頭はないの?
パッケージ&リポジトリを別途落として、ローカルにアップデートサーバを建てる、という方法もありますが、なぜyumごときにそこまでせにゃならんの?マンドクセ('A`)
というわけでyumも諦め、ちまちまとimportしていたらかなりの時間が…。なんというか、金の無駄だなあ。
今はグラフィックアクセラレータといえば、nVidiaかATIかIntelくらいなものですが、一昔前までは各社の群雄割拠状態でした。VooDooとかPowerVRとかどこ行ったんだろう。ああ、Millenniumってのもあったなあ…。
と思いきや Matrox Millennium P690が出たらしい。Millenniumをまだ作っていたとは…知りませんでした。Windows Aeroは使えませんが、ファンレス&省電力が売りのようです。最近のグラフィックカードは速いですが、アホみたいに電気を食うしファンが爆音ですからねえ。
マザーボードにグラフィック機能がなくてグラフィックカードを探しているけど、さほど描画性能はいらない、なんてレアケースに対応できるかも知れません。
この前実家のある北海道に帰省したとき、当然ながら北海道の電車に何度も乗りました。そこで思い出したのが「北海道の電車はドアを二回くぐる」って話です。
普通の電車は、電車と電車の間を繋ぐドア、電車と外を繋ぐドア、の二種類しかありません。しかし北海道の電車には、客室内と客室外を繋ぐドア、があります。
この電車は内地では走っていないので、説明しても皆さんピンと来てくれません。というわけで写真撮ってきたんだぞ。
左側のドアから外の景色が見えていることからわかるように、左側が電車と外を繋ぐドアです。右側にも見慣れないドアがあって、いすが見えますよね。
もう一つの特徴は、壁一面が真っ青&スズランで埋め尽くされていること。
北海道に住んでいたときは何とも思わなかったですが、今思えばかなり異様。青くするのは構わないけど、ここまで鮮やかな青にする必要があったんだろうか。
この話は前々から書きたかったんだけど、今になって思い出したんだ。
JR東日本やJR西日本ではSuicaやICOCAを導入してからというもの、マスコットキャラのペンギン(東日本)と、カモノハシ(西日本)が前面に出てくるようになりました。
実はJR北海道にもマスコットキャラが居ます。雪男ですかね?なんかもさもさしてます。
ICカードがどうのこうの言い出すより前から居る気がします。かわいいかと言われるとどうなんでしょうね…。自分は客に媚びない感じがして好感が持てます。ずっとこのまま微妙なスタンスで居て下さい。
九州や東海も居るのかな?ご存じの方は教えてくださいな。
明日も休みなのを良いことに夜中までSena氏とPS3のガンダム無双をやっていました。
ガンダムのストーリーを知らないと登場人物が何を言ってるのか意味がわかりません。ゲーム自体が面白いからそこそこ楽しめますけど、分かるに越したことはなさそうです。
幸いなことにSena氏がガンダムに詳しかったので、こいつ誰、何者?って聞きまくりながら2人で遊んでました。
ボスが硬いので連続で叩きたいのですが、無双技で暴走して敵を見失い、後ろからぶん殴られて死ぬ、ってパターンが多かったです。相手の方に素早く向き直るコツはないのでしょうかね。
車を車検に出してきました。昨日、近所にある三菱のディーラーに予約を入れたのです。
地図によるとディーラーはR171沿いらしいので、R171をひた走る。すると三菱のお店を発見。お店の人にご挨拶。車検の話を聞いてみると車検のご予定は伺っておりません、とのこと。へ、なんで?
私「○○さんにお願いしたのですが。」
店「はい、○○は私ですが、予約は伺っておりませんが?」
私「あれ??昨日予約しませんでしたっけ?」
店「い、いいえ??」
こりゃ何事よ?と思ってたらお店の方が、
店「…ああ!もしかして高槻店をお探しですか?」
私「はい?そうです。こちらですよね?」
店「いえここではなくて、もう少し行ったところにあるんですよ。」
私「え…えぇ!?」
この時点で初めて店を間違ったことに気づく。両店とも近くにあって、偶然ですがどちらの店にも同じ名前の方が居たようです。なんて複雑な…。
そのまま車検をお願いしても良かったのですが、既に予約してしまったのでそうもいかず。お店の人に謝り倒しながら出てきました。ご迷惑をおかけしました。
子供がカニに指を挟まれて「いたいよー!」と言っている怖い電車のドアステッカーがあったはず、という記憶を頼りに調べてみました。
JR北海道以外で自分が乗ったことのある路線というと、札幌市営地下鉄くらいなものでしょう。ネットで探すと簡単に見つかったのですが、なんと子供じゃなくてクマでした。しかもカニなんて全くどこにも描いてない。どこから沸いてきた記憶なんだか…。
先日ご紹介(2008年1月18日の日記参照)したJR北海道のマスコットキャラクターの雪男?は「モジャくん」というそうです。どうでもいいですか、そうですか。でもまだ続くもんね。
モジャくんは旅行のパンフレットなどに描いてあったこともありましたが、最近めっきり姿を見かけません。このままでは今年の秋に導入予定のICカード「Kitaca(キタカ)」のマスコットキャラ(エゾモモンガ)に駆逐されてしまいそうです。ぜひ頑張っていただきたい。
Kitacaは何だかぱっとしないですね。白黒のモモンガがSuicaのペンギンと似てるし、緑色基調なのも似てる。同じデザイナーに頼んだんだろうか。
飲み会に誘ってもらったので「行きます」って返事しました。夜、再びメールが来て、飲み会が無くなったとのこと。
だけど、別の飲み会が開かれることになったらしいのでそちらに行きました。飲み会は不滅です。
話題が運転中の眠気の話になり、友人が「眠くなってくると、視界が暗くぼやけるというか、例えるなら映画の黒い枠みたいになる。」と言っていました。私も同じような体験があるのですが、なるほど言い得て妙です。
こういう状態になってるのは確実にまずいわけで、即車を止めて休むべきです。が、当の本人は気づかないから、困っちゃうわけです。下手したらどこかに激突しますが、私や友人は幸運なことに事故らなかったため、続きも見たわけですよ。
しばらく映画の黒い枠状態が続いた後に、どういうタイミングかわかりませんが、一気に目が覚めるポイントが訪れます。一瞬で眠気がゼロになって、視界が晴れ、頭が冴えます。そのあまりのギャップに初めて「今まずい状態になっていた!!」と気づくのです。
気づくのが遅すぎとお思いでしょうけど、本当にこんな感じでした。もちろんこれは確実に良くない状態なので、絶対に寝不足で運転しないでください。私も二度と体験したくないですね…。
夕方まで寝てた。やっぱり一週間に一日はこういう日がないといかんね。
車検が終わったらしいので車を取りに行きました。
取りに行くと書きましたが、実は車検に出すとき代車が借りられなかったので足がありません。なので、販売店の営業の人がわざわざ迎えに来てくれたわけです。親切な方ですなあ。
車の販売店に行くなんてそうそう無いし、ランサーエボリューション(店先に飾ってあった)に試乗させてくれー、って言えば良かったなあ。
最近の国産車は必ずしも日本人にウケが良いとは思えません。自動車メーカーのやる気がなくなったのでしょうか?実はそうではありません。最近の日本車は「世界戦略車の日本バージョン」であって、日本向けに一から設計された物ではないのです。
詳しくは日経の記事(日本で売っても儲からない、だから世界戦略車で勝負)を参照いただきますが、ざっくり言ってしまうとまずはどの国と決めずに平均的な車を設計して、それから各国向けにカスタマイズした車を設計するのだとか。
そんなことをして日本で売れなくなっても良いのか?と思われるかも知れませんが、日本で売れなくてもどうということはない…がメーカーの本音でしょう。
日本は豊かな国ですが、自動車メーカーが多数ひしめきあっていて利益は出ないし、今後は少子化で購入層も減る一方です。日本は世界戦略の一部を担うどころか、全くうまみのないお荷物になりつつあります。今後も日本仕様は軽視されること間違いなしで、寂しい限りですね。
どこの会社もそうだと思いますが、情報漏洩対策でUSBメモリだのCD-Rだのといった記録媒体を会社内に持ち込むことは原則禁止されています。
普段はそんなこと気にならないのですが、PCの再セットアップの際にイーサネットカードのドライバが見あたらないとき、非常に困ります。別のマシンから持ってこようにも、移す手段がありません。
今日まさにその状態にはまってしまって困ったんですが…。窮地を救ったのはシリアルポートでした。
Windowsにはハイパーターミナルという素敵ソフトが大抵入っていて、そいつを使うとシリアルポート経由でファイルを転送可能です。LinuxなどのUNIX系OSでもシリアルポート経由でファイルを送る手段はあるはずです。
速度はせいぜい115.2kbps(14.4KB/s)で、けして速いものではありませんが、シリアルポートさえあれば必ず使えるので助かります。おおよそどのOSにもドライバがある、というのは枯れきったデバイスたるシリアルポートの利点でしょうねえ。
しかし最近のノートPCなどはシリアルポートが無いものも多いし、この手段も廃れつつあるのかな…。
Javaでプログラムしていたら妙な現象に気づきました。
以上の処理を行うループを回していると、PCの時計が3倍くらいの速さでどんどん進んでしまいます。バッファに何も描かずにdrawImageするであるとか、20ms以上の時間をsleepに指定した場合には、問題ないようです。
バッファに描いてdrawImageしてsleepを呼んで待つ、というパターンはゲームでありがちな処理だけに困ってしまいます。何が悪いのかさっぱりわからない。Javaとその内部に詳しい人が居たら、何が起きてるのか教えて欲しいところです。
それともなんだ、地球のためにCPUパワーを食うBlitではなくFlipにしなさいっておぼしめしなのか…?
検証に使ったコードは以下の通りです。
import java.applet.*;
import java.awt.*;
public class TestClockSkew extends Applet implements Runnable {
Image i;
public void init() {
i = this.createImage(800, 600);
Thread t = new Thread(this);
t.start();
}
public void run() {
while (true) {
Graphics g = i.getGraphics();
g.setColor(new Color(0, 0, 0));
g.fillRect(0, 0, 500, 500);
g.dispose();
this.getGraphics().drawImage(i, 0, 0, null);
try {
Thread.sleep(11);
} catch (InterruptedException e) {
}
}
}
}
当初は実際に動作するアプレットを貼りつける予定でした。しかし実行したところで、黒い画面が出るだけで何も面白くないうえに、もし皆さんのマシンの時計が狂ったりしたら大迷惑なのでやめました。
大好きな蒟蒻畑をダイエーで3袋くらい買ってきてもさもさ食ってたら、一瞬でなくなりました。しかも食べ過ぎて具合悪くなってきたし…。
それはさておき、蒟蒻畑の袋に「高齢者と子供は食べないで」というイラストが入っていることに気づきました。以前は裏側に「気をつけて食べて」とか「スプーンで食べて」という注意書きがあっただけだった気がします。
袋の表にしっかり描いてありますね。右下のマークの部分を拡大すると、以下のような具合です。
食べるな、とはっきり描いてあります。喉に詰まらせる事故が起きる度にこの手の警告は厳しくなりますが、ついに注意や警告ではなくて禁止になってしまったようです。事故が起きまくる交差点が一時停止 -> 信号 -> 歩車分離へと進化する(?)のと似たような物か…。
目次: C言語とlibc
突然printfの動きがおかしくなって、引数で与えた数値を表示したりしなかったりするようになりました。
で、調べてみるとこーんなプログラムになってたわけです。
#include <stdio.h>
int main(int argc, char *argv[])
{
long long int a;
int b, c;
a = 0x1234567887654321LL;
b = 200;
c = 300;
printf("a:%d, %s, b:%d, c:%d \n", a, "strings", b, c);
return 0;
}
実行してみると
$ gcc a.c $ ./a.out Segmentation fault
見事に落ちました。
このプログラムのまずいところは変数aは8バイト(long long int型)あるのに、printfには %d書式(signed int型の指定)と指示しているため、printf側が4バイトしか見ない、ってところです。残った4バイトは次の %s指令のデータと見なされて、その結果変なアドレスを見に行ってプロセスが死にます。
なので、この場合は %dじゃなくて %lldと書いてlong long signed int型であることを指定すべきです。正しく動いたときの結果はこんな感じ。
$ ./a.out a:1311768467139281697, strings, b:200, c:300
整数だからといってなんでもかんでも %dにしちゃだめですよ、って教訓ですな。
$ gcc --version gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -Wall a.c a.c: In function 'main': a.c:12: warning: format '%d' expects type 'int', but argument 2 has type 'long long int'
ちなみにgccなら -Wallオプションを指定すれば、printfの書式指定が間違っていたときに教えてくれます。
もちろん好きこのんでこんな状態を作ったわけではありませんので、お間違いなく…。
この問題に出会うきっかけとなったプログラムは、言うなれば「typedef地獄」でしょうか。ぱっと見ても、整数なのか浮動小数点数なのか、はたまた構造体なのか…型が全くわかりません。何よりひどいのはtypedefが連鎖しまくっていることでしょうか。
例えばAライブラリのA_TypeがBライブラリのB_Typeのエイリアスだったとして、そのB_TypeがさらにCライブラリのC_Typeのエイリアスで、それがさらにDの…というように、ひねりのないtypedefが延々と続きます。
そのくせ最後まで辿ってみると無条件でtypedef int X_Type;(単なるint)とかいうオチが多いので、ウザいことこの上ない。
やがて調べるのが面倒くさくなって、どうせlongかintだろって思ってなめてたら、long long intのエイリアスがいくつか混ざっていて、警告オプション -Wallもご丁寧に抹消されており、上記の問題にはまったわけです。
C言語において、ダメなマクロの話は良く聞きますが、ダメなtypedefの使い方はそうそうないと思う。