輝々凛々

ガンバるってことは、素晴らしい事だ。

今年の目標

遅ればせながら、今年の目標を立ててみました(書いてなかったですよね?)

今年の目標(2007年度版)

「最大限の努力をする」

そりゃもう、最大限です。努力を預金する感じですね。うん、未来の自分の努力さえも奪ってやりたい感じです。

日本ファルコム「空の軌跡 the 3rd」をやった。

遅ればせながら、日本ファルコムさんの「英雄伝説6 空の軌跡 the 3rd」をやりました。6月末発売でしたので、1ヶ月間我慢していた模様ですが、結局初回版を買えてしまいました。

店頭ではファーストからサードまでの3巻セットというのも売っていて悩んだのですが、諦めました。Vista対応の1~2がちょい欲しかったけど、諦めておきました。とてもゲームエクスプローラに対応しているとは思えないし。アップデートが入っているかもしれないし(結局、アップデートなしで遊べるらしいことがわかったけど)。

感想

んー。新手のファンディスクって感じです。すごいストーリーがないのですが、いままでファーストとセカンドで出てきたキャラクターのサイドストーリーとか回想シーンが入るので、ファンにはたまらない・・・んでしょう。

んー・・・、ゲームとしての方向は間違っているけど、たまにはいいでしょう。うぬ。次回作「英雄伝説7」へどうつながるかが見物です。

あ、点数は、いつもどおりの10段階で、個人的に8点。一般的に4点。今まで空の軌跡をプレイしてきて、次回作を待ち望んでいた人にはお勧め。それ以外の人には、ぜんぜん進められない作品です。

もはやC++には見えないC++

boost::options_description opt("オプション一覧");
opt.add_options()
  ("help,h", "ヘルプを表示")
  ("version,v", "バージョン情報を表示")
  ("input,i", "入力ファイル名")
  ("output,o", "出力ファイル名");

というC++には見えないC++を書けるのは、boost::optionsです(変な言い回しだ)。これの実装は比較的単純で、add_options()の戻り値にしかけがあります。

確かに使う人から見た場合の書き方は綺麗なんですけど、実装が想像できないようなコーディングはどうなんだろう。。と思った次第です。

別に否定的なわけではなく、自分がこういうコードを書いたときに周りから全面否定されそうなのが、ちょっと怖い感じです。・・・まぁ、やらなきゃ始まらないから、やりますけど。

それにしてもこういうのを考えれる人の頭は、どうなっているんでしょうか。

文字の大きさが変えれないのは

「文字の大きさが変わるとレイアウトが崩れる」なんて理由で文字の大きさが変えれないのだとしたら、それはもはや本末転倒。レイアウトは何のためにデザインするのだっけ?

文字の大きさを変えれないのだとしたら、それはサイトを作成した人、そのテンプレートを作成した人の怠慢に他ならないと思う。

しかもさ、「使用許諾書」の文字だよ?

テンプレート変えてみた。

ついでに、SyntaxHighlighterを入れてみた。JavaScriptをONにしてると、以下のソースコードがキレイに表示される・・・ものと願っている。

#include <iostream>
using namespace std;

int main()
{
	cout << "Hello syntaxhighlighter" << endl;
	return 0;
}

ただ、なぜか行番号がうまく表示されなかったので、行番号の列は削除指定(nogutter)している。

プロジェクト処理モデル?

なんか、あらゆる・・・とまではいかないけど、だいたいのプログラムは次のモジュールがあれば書けるんじゃないかと考えた。まるで会社のようだ。

ワークユニット
仕事するモジュール。与えられたパラメータの仕事をする。
タスクマネージャ
ワークユニットをつなげて、ある一定のタスクを行う。データマネージャを使って、各ワークユニット間のデータ制御も行う。
プロジェクトマネージャ
タスクを管理する。データの流れ自体は制御しないが、処理の開始や中断、強制終了くらいはやる。
データマネージャ
データの流れを管理する。つっても、外部からの指令なしでは何もしない。タスクマネージャに使われる立場。各ワークユニットが動きやすいように、データをある程度プールする。
パラメータ
各ワークユニットのパラメータ。
アプリケーション
プロジェクトマネージャを使って、あるプロジェクトをこなす。プロジェクトマネージャと違う点は、ユーザーとのインタフェースを持つか持たないか。

んー、まだ色々と問題はあるかもしれないけれど、こんな感じでマルチメディアプレイヤーもブラウザもエンコーダも書けるんじゃないかと思う。まぁ、超大規模なアプリは無理かもしれないけど(プロジェクト間をつなぐのが大変そうだし、プロジェクト毎に並列動作させたいときが難しそう)。

ちょっとずつ形にしたいなぁ。

社会人

社会人になって、立ち居振舞とか、折り目の正しさとか、誠実さとか、タイミングとか、話し方とか、メンタルの強さとか、営業スマイルとか、そういうのを身につけないとダメなんだなぁ、と思っています。

SDKs

会社のPCに入っているSDKたちを並べてみた。

  • Windows SDK
  • Platform SDK
  • Windows Media Format SDK
  • DirectX SDK
  • .NET Framework SDK 1.1
  • .NET Framework SDK 2.0
  • 某箱用SDK
  • 某ii用SDK

んで、Windows用が複数入っていると、もはや「windows.h」のバージョン違いなんてあたりまえのように入り組んでいて、あぁ、バーチャルマシンで仕事したいなとか思うけど、でも会社のP4HTTなマシンじゃ無理しんどすぎ、とか思う今日この頃、2009年ごろに発売されると噂のオクテットコアマシンが早くほしいものだと、考えながら仕事してました。つか、会社のディスプレイ狭すぎ。いや、うちのが広すぎなんだけど(まだ狭いと思っているけど)。

CRTのスレッドモデル。

今日、いろいろ資料を漁っていて、いろいろ怪しいことに気付いてしまった。明日からがんばらなきゃ。

ここ→redstrange「スレッドモデル」にまとめておいた。なにか間違っているかもしれないけど。

ゲーム

DSよりPS2の方がグラフィックス性能は高い。だけど、画面が小さいせいもあってDSの方がキレイに見える・・・・、ってのはあながち間違いではない。

けれどPS2での下積みとか、ソフトウェアな技法のおかげってのが大半だと思うな。どうすれば奇麗に見えるか、どうすれば自然に見えるか、どうすれば楽しく見えるかってのを考えた人がいて、今の表現があるのだと思うなぁ。

グラフィックスやムービーの美麗さを追い求める人が、会社がいてもいいじゃない。物凄いCPU性能を追い求めるハードがあってもいいじゃない。新しい遊びを作ったって、古い遊びを掘り起こしたって、「これがゲームです」って全然別のものを指さしてもいいじゃない。

たかだか仮想現実な世界だったり、たかだかソーシャルな世界だったり、そんなぐらいのものだもの、いろんな方向があってもいいじゃない。

って、そう思う。

プログラマの金銭感覚

Intel Core2Quad搭載マシンが13万か・・・、安いな!

...._| ̄|○

タカキが許せない

でもやっぱ、タカキくんが許せないよね。かっこいいけど、やっぱそこはアカリちゃんとくっついてくれないと・・・・。いやでも、待てよ。

第3話「秒速5センチメートル」って、特に時間軸がバラバラじゃないですか。ということは、アカリの結婚相手はタカキなのかもしれないし、アカリの言った「式で会える」は、誰の式だよって感じだし。ふむ。結局最後は、自分の好きなように解釈することもできるってことか。

まぁ、普通は誰もタカキとアカリがくっついたようには思わないだろうけど。

それにしてもタカキくんが無闇にカナエに優しくするのが、許せないわ。カナエがかわいそう。。うるるん。

新海誠「秒速5センチメートル」

秒速5センチメートル」は、全部で3話からなる一連の新海誠さんの映像作品、あるいは第3話「秒速5センチメートル」を指します。第1話は「桜花抄」、第2話は「コスモナウト」、第3話が「秒速5センチメートル」です。

で、昨日ようやくDVDが発売されまして、ようやく見れました(映画館は行けず・・)。まずは恒例(?)の10段階評価の点数だと、10点満点。

あくまで私的な点数なので、どうかご関係者様も置きになさらずに。。ん? 10点なら気にしても良いのか。。

切ない

端的な感想は、それぞれ第1話「すごく切ない」、第2話「強烈に切ない」、第3話「どんと切ない」。。ボキャブラリないな・・・。

でも、第1話はタカキとアカリのすごく切ない距離、第2話はカナエの強烈に切ない感情が印象的でした。第3話は、もうそりゃ・・・、どんとクル切なさが・・・。

音楽に関しては、山崎まさよしさんの「One more time, One more chance」がすごいマッチしていました。たとえ多少の故意が入っていたとしても、あれはもはや山崎まさよしさんのプロモーションじゃないですかっつーくらい、マッチしていました。

声優さんもすごい合っている感じですし、BGMもすばらしい。演出も良いし、テンポも良い。

でもやっぱ、絵を語らずにはいられないっすね。絵はやっぱ現実よりも綺麗です。これこそが「表現」だと、そんな印象です。「絵で表現する」っていうことは、写真をそのまま描き写すってことじゃないですよね。すごいよね。表現できるってすごいです。

いやはやみやはやうやはやもやはや。この先や、ほかのストーリーとかも見てみたいものですが、きっとこれ全部あわせて10点ですね。すごいすごい。

政治家

政治は、途方もないカリスマと知性、行動力を持ち、信頼も置ける人情味のある天才に任せるべきだな。どんな逆境も、正念場も訪れることなんて微塵もない、凄まじい影響力さえ感じさせない、任期中は誰も文句を言わないし、絶賛もしない、そんな政治家だ。

学歴差別というわけじゃない。学はあってしかるべきだ。国の舵取りを行うのなら、高学歴さえ飛び越えた学を持っていて当たり前だ。元プロレスラーとか、元アナウンサーとか、元芸能人とか、そんなのは要らない。元から政治家を志す、そんな人こそに政治をすべて任せたい。

それが適材適所だと思う。

ミチル

僕は、満たされるだけじゃ満たされない。

僕は、満たされて、満たして、満たされたい。

支え

顔を見れば、「ほっ」とする。そんな支えになれたらいい。

Xbox360サポートフォームがサポートしてくれない。

世間では「マイクロソフトの対応悪いよね」的なことを散々言われていますが、自分もサポートを受けることになって同感しました。

サポートフォームがサポートしてくれない。

自分は、普通に「Xbox.com | サポート - お問い合わせ方法」から「Xbox 360 ハードウェアに関するお問い合わせはこちらから」のページでフォームを埋めて「送信」しました。

それがもう1週間以上前のことです。1週間以上前のことにもかかわらず、待てど暮らせど返事がありませんでした。で、改めて今日、もう1度フォームを利用して驚愕。

Xbox360サポートフォーム送信後(Firefox)
よく見ると、「サポート チケット番号」の項目が書いてない。書いてないのですよ。バグかと思い、改めて、普段使っているFirefoxではなく、Internet Explorer 7でも送信してみました(幸いフォームの内容はメモ帳へコピー済みでした)。

Xbox360サポートフォーム送信後(IE7)
Internet Explorerでは案の定、「サポート チケット番号」が書いてありました。そうですよね、こうでなくっちゃ。よく読むと「24時間以内」に返事が来そうなことも書いてあります。

ということは、おそらく、たぶん、maybe、perhaps、probably、あちら側のPHPかCGIか何かのプログラムのバグで、Firefoxではちゃんとメールフォームが届かなかったんでしょう。

だから、サポートが悪いなんて言われてるのね、、きっと。

Lanczos Resampling

Lanczosリサンプリングってのがある。これは画像の拡大・縮小で使われている。グラフは、次のようなもの。具体的な式は、Wikiepdea「Lanczos resampling」を参考のこと。Lanczos Filterとか、Lanczos法って呼ぶ人もいるみたい。Lanczos法は違うだろって思うけど。
Lanczosフィルタ

んで。こうやって、グラフを書けるぐらい数式は簡単に書けちゃうんですけど、実際、これを拡大縮小にどうやって適用したらいいのかが、いまいち不明瞭。まるも製作所さんの過去日記「7月7日(土) 縮小アルゴリズム(8)― Lanczos」には、割と詳しく書いてある。

特にランツォシュ関数の引数が重要。出力後のある画素(ox,oy)の画素値(色)を求めたい場合は、次の手順で求める。

  1. (ox - 2)が相当する入力画素のx座標のCeilと、(ox + 2)が相当する入力画素のx座標のFloorを求める。それぞれ、icx、ifxとでも表すことにする。oyについても同様。Ceilは、その値を超える最小の整数で、1.5なら2.0がCeil。逆にFloorは、その値を超えない最大の整数。つまり1.5のFloorは、1.0。
  2. つぎにicxからifxの範囲にあるすべての入力画素に対して、ランツォシュ関数に渡す引数の値を求める。
  3. 「(icx - lob / scaleRate) / lob」で求まる。ここでscaleRateは画像を2分の1に縮小する場合、0.5。2倍に拡大する場合は、2.0となる。lobは、2か3のアレ。
  4. んで、求めた値でランツォシュの係数を求めて、icxからifxのそれぞれの画素値に係数かけて足し算する。
  5. で、最終的に(ox, oy)の画素値にする。。。

だけかと思ったら、違うみたい。

  1. Y方向のランツォシュとX方向のランツォシュが求まると思うけど、それらはそれぞれ掛け合わせる。
  2. んで、掛け合わせた係数を使って入力画像の画素に重み付ける。
  3. そんで(icx - ifx),(icy-ifx)で掛け合わせた係数は、全部足し算しておく。
  4. 最後に求めた画素値は、この足し合わせた係数で割っておく。
  5. で、割ってから出力画像の画素値とする。

だと、思う。いちお、これで上手くいった。

高速化

ただ、ランツォシュさん遅いです。超絶遅いです。特に、Lanczos3は遅いです。で、高速化しよう・・・・・と思ったけど、夜も1時だし、C#だしやめた。

あ、ちなみに、Lanczosさんはハンガリーの人。なかなかハンガリーって国は数学に強くて素敵。ご存知、ジョン・フォン・ノイマンとかもハンガリー関係だったり。

よし、おかんにバレた!

今日、おかんにブログ書いてるのがバレた。

つっても、このブログじゃなくて、会社で書いてるブログなので、何のその、技術系の話がメインなので無関係さ!

飽きた

やっぱ、コメントとかトラックバックのスパムを集めるのも飽きた。

そうめんの日

今日、7月7日は「そうめんの日」です。久しぶりに会ってるオリヒメさんとヒコボシさんに我侭にも願い事をする日じゃないです。

というわけで、明日は愛想もそこそこ、紫帯(縒つむぎ)の揖保乃糸を頂かず、明日もまっすぐカレーを食います。これで5日目だはは。

愛想もそこそこ

健康診断、その場でわかった結果は・・・

  • 左目視力0.4回復
  • 右目視力0.1回復
  • 体重3キロ、リバウンド
  • 身長0.5センチ伸張

という感じでした。ま、多分に誤差の範囲でしょうけど。

死色のリングライト

ついにうちの360さんも、死色の光を眩いばかりに放ちながら死亡をお知らせしてしまいました。。とりあえず朝になってもダメだったら、保障期間が延びてるらしいので、カスタマサポートに連絡してみます。。

死色のリングライト
写真は、トラスティベル・フェイスプレートシールを貼った360さん。

本日、健康診断だべ(笑)

さぁ、健康診断をはじめよう。

夕日の向こうに

トラスティベルの登場人物「サルサ」の台詞が気に入っている。

「夕日の向こうにブッ飛ばすだべ」

「だべ」がちょうかわいい。

創る

「そんなものは幻想だ。」
「理想的すぎる。」

それが創らない理由にはならない。

珍しいニュース

電車が大幅に遅れた!

って、ときは大抵、故障か不幸かどっちかですが、今回、asahi.com「??????」(タイトル隠し)は、とても素晴らしい! 平和的っていうか、ある意味宗教的なのか、何なのか。とにかく珍しいケースで遅延した。

食事中に見るものじゃないけど。多くの方のご冥福(?)をお祈りします。

自分も利用したことのある電車だけに、親近感(?)を覚えます。

では。

1GIBあたり25円。

Western Degital製の500GBの16MBキャッシュのハードディスク12500円程度で買えるのか・・・・・、すごいなぁ;

警察庁より

このサイトの管理者はわいせつ図画陳列罪で逮捕されました。このようなサイトを利用することは、犯罪の助長につながりますので、利用しないようにして下さい。

という警告文が、警察庁からホームページに寄せられる時代になったようだ。自分は(弁明するわけではないが)、asahi.comから情報を得ました。

これは警察庁が当該ドメインの所有者に協力を得て表示したものらしい。所有者つっても逮捕された人ではなく、おそらく電気通信事業者のことだと思うが。

さてはて、Googleで大量に引っかかるときが来るのかな、と思うと楽しみ。←あほ

ビットマップ

ビットマップって何気に簡単そうなフォーマットのくせに、調べれば調べるほど難しくなってきた。特にWindows V5ヘッダが曲者。無知では読めないことばかり書いてある。なんでビットマップが色空間持ったり、ファイル自体の「意図」とか、カラープロファイル・ファイルのファイル名(笑、Unicode禁止、泣)を持たなきゃだめなんだよ・・。つらー。。

っていうか、V4ヘッダもV5ヘッダもサンプルくれよー。

と! そんな今日の良き日は、DPIについて。

DPI - Dot Per Inch

そもそも自分はインチ自体馴染みがないですが、どうやら「国際インチ」を指すことが多いみたい。国際インチの「1インチ」は、2.54センチメートルです。逆に1メートルは、100/2.54で39.3700787インチになります。

Windowsの標準的なDPIは、96dpiですが、マックは72dpiです。ちなみにWindows Vistaでは、個人設定あたりから「DPI」を検索すれば色々変更できます(Vista以前にも設定項目は、確かデスクトップのプロパティあたりにあります)。

で。このDPIは1インチあたりのドット数(ピクセル数)を示しています。なので、100dpiに設定している人と50dpiに設定している人がいれば、1ピクセル幅の線の見え方は全然違ったものになります(100dpiの人には細く見える)。

さらにDPIをちゃんと考慮したアプリケーションでは、文字の大きさなどを「ポイント」で表しています。ポイントは大よそ1/72インチです。たとえば12ポイントのフォントを100dpiの環境で描画すると、12×100/72=17ドット(ピクセル)で描画されることになります。

なぜこんなことを

なぜこんなことを知らないとダメかって、そりゃもちろんビットマップファイルの中に、この画像がどんなDPIで描かれたものなのかを示すところがあるのですよ! ま、正確に言えばDPIではないですが、1メートルあたりのピクセル数を書く場所があるのですよ!!

BITMAPINFOHEADERのメンバで言えば「biXPelsPerMeter」や「biYPelsPerMeter」。BITMAPV4HEADERで言えば「bV4XPelsPerMeter」や「bV4YPelsPerMeter」。BITMAPV5HEADERで言えば「bV5XPelsPerMeter」や「bV5YPelsPerMeter」です。もうついでに言えばOS/2のBITMAPINFOHEADER2では「cxResolution」あたりがそれっぽい。

あぁ・・、誰だこんなフォーマット作ったのは!