輝々凛々

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

ダメプログラマ

よくノリノリに作業がはかどって、退社時間が過ぎてもプログラミングをしてしまうことがある。

だけど、それじゃダメだと思う。例えノリノリな時間があるのだとしても、それをきっちり打ち切ってやめる。打ち切ったとしても、再開すればまたノリノリになれる。それが真のプログラマじゃないかと思う。

プログラミングなんて仕事をやってると、自分のスケジュールにない仕事が舞い込むことが多い。だからこそ、ノリノリの作業状態でも、それをすぐに打ち切れって再開できるというのは、とても重要な能力だと思う。

自分もまた、その能力を磨かねばならないと思う。

利便性

C言語に比べて、C#は便利な機能が満載で簡単にコードが書ける。大して何も気にしなくても書ける。たとえばforeachとかデータバインディングとか、eventとか。どんどん便利になっている。

だけど、便利さが向上するのと同じスピードで、設計の質が落ちている。設計だなんてものを気にしなくても、どんどんアプリを書けてしまうから、設計の質が落ちていっている。それじゃダメだ。メンテナンスしにくいものしかできやしない。

注意せねば。意識せねば。

3つの型紙GUIアプリ

ふと、午前四時に「GUIアプリケーションって3種類に分けられるね」って思った。内訳は下の通り。

※超眠いので、書き損じ等々は勘弁。

  1. 大量データに同じような処理を行うGUIアプリ
  2. 単一あるいは複数のデータから、単一のデータを作り出すGUIアプリ
  3. 何かを見る、編集するためのGUIアプリ

大量データに同じような処理を行うGUIアプリ

コンバータとかがこれ。iTunesなどのプレーヤもこれ。数多くのデータを扱うために、メイン画面はリストビューやツリービューというもので構成される。メーラーやファイラーも同じ。

単一あるいは複数のデータから、単一のデータを作り出すGUIアプリ

これは、どちらかというと「開発者」が使うものが多いかな。AfterEffectsとかPowerPointとか、TMPGEncとか、何かそんなの。複数データをまとめるって感じ。GUIは結構複雑で、色んなタイプがあるけれど、決め手は特にないって感じ。ウィザード形式だったり、MDI形式だったりする。ほんと色々。

何かを見る、編集するためのGUIアプリ

ワードやブラウザなんかがこれ。画像ビューアとかもこのタイプ。ツールバーを持ってて大抵のことはそれでまかなえる。用途によっては複雑なGUIを持つ。

まとめ

うちの会社みたいに、決してツール作りがメインではないけど、ツールは作らないといけないって会社さんは多いと思う。そこで、これら3つの型紙GUIアプリを作っておけば、ある程度、工数を減らせる・・・・のかな、と思った。そんな午前四時

それぞれ

それぞれの人生がある。
そこに失敗も成功もある。
後悔も希望も懺悔も夢も、すべてある。
だから、大丈夫。

掛け算

コンピュータが行う「掛け算」と人間が頭の中でやる「掛け算」は、その考え方がまったく違うと思う。

Xbox360ライブアーケード専用ゲーム機

なぞあれば良いのに。

お預かり

こないだ本屋に行ったとき、新人らしき人にレジうってもらいました。
ブックカバーふたつと本を2冊ばかり買って、4000円くらいになったので5000円と小銭を出しました。
そしたら「ご、ごせん円のお預かりになります。」って超びびりながら言われた。何? 5000円札見たことないの?
それ以前に、俺が出した金をまた預からないとダメなのかよ。普通に預かれ!
いや、それ以前に預かるな! きっちり受け取れ!


……、これってバイト言葉?



そうそう最近40代のおっさんが「ご相談なんですけど~」って相談しにきた!
いや待て、相談するのはてめぇだろ?
それとも誤相談だったのか?

Yahooが凄すぎ。

Yahoo ステップアップの英語しゃべらせるやつが凄。英語が苦手な私が聞いて、なんて流暢にしゃべってくれるんだ! って感じ。ためしに「an tar no to me ja nine der color neeee!」をしゃべってもらった。ツーーンってきて、最後がウケる。

作ることと学ぶこと

何かものを作るときは、ある程度、下積みが必要です。で、今日の議題は「どれくらいの下積みが必要なのか」です。

それ、どれくらいの下積みが必要?

「日々精進」という言い回しが答えのようですが、それでは余りに抽象的です。もっと具体的に、ハサミを作るのに何時間かかる? 歌が上手くなるのに、どれくらいかかる? 美味しい料理を作るのに、どれくらいかかる? 何年、何日、何時間下積みすればいい?

今まで、学生として下積んできたものは、何年経ったら花開く? 何年経ったら役に立つ? 何年経ったら形になる? 何かを為すための下積みになっている?

作る一方で学ばなければならないのはわかっている。子供が大人になって、社会に出て働くということは、これまで生きてきたすべての人間が下積みしてきたものを越えることに等しい。少なくともどこか1箇所でそれらを越える。どんなに大変か、想像は難くない。どこを越えるか、いつ越えるか、どれほど越えるか、決めてみる。

俺は、ノイマンを越えれるか。ビルゲイツを越えれるか。リーナスを越えれるか。アインシュタインやノーベル、オイラー、フェルマー、ラマヌジャン、ジャスワルを越えれるか。

職業プログラマに必要なこと

今日、午前中に後ろの席で同輩Aが先輩Tに怒られていた。その先輩が言うには、「B君が言ってくれないから知らなかった? 違うでしょ。今週SDK提出だよね。A君とB君が一緒に仕事してるんだから、常にお互いの気を配らないと。お互いの進捗を知っておかないとダメでしょ?」だそうです。

また、同様のケースだと思った記事がちょうど「新人さんに割り当てられた仕事」(それは仕様?さま)にありました。

視野が狭い、想像力が足りない、あるいは、意思決定を行わない、というのが問題なんです。

つまり想像力を働かさず聞いたことをやるだけというのは、職業プログラマにとって非常に不味いのではないかと言うことだと思います。自分の意思でやるべきことと、やれることを決定していないのだと思います。

もちろん新人のうちから会社の方向性を決めるような決定はできないでしょう。境界条件が明らかに不足しています。ですが、たとえばお客さんの視点に立つとか、プログラムを使う人の立場で考えて、今よりも優れたものを定義(決定)して、それを作っていくことはできると思います(巨大すぎて作れなくても、方向性を示すこともできますし、それを為すことができる人に託すこともできるでしょう)。

そういえば自分は、大学3年のときに行ったインターンシップで、自分にとって徹底的に足りないことがあると気付きました。そのときはまだ曖昧でしたし、今の今まで曖昧でしたが、今明確にわかりました。

プロのプログラマとして・・・、いや職業に就くのであれば、それはプロであることと同じ。これは正に「責任」という一言です。何をどう考えて、何を定義して、何が不足で、どうするか。聞いたことだけじゃダメ、思いついたことだけでもダメ。全部全部考えて、熟考して、なおかつ速やかに実行し、十全な状態にするのが職業だと気付きました。く

そんなこと、初めから気付いておけよ、俺。


以上

ミドルウェア

ミドルウェアを作る会社にとって、サポートは想像以上に重要だと思う。サポートの良し悪しが採用の有無を決定するといえる。問い合わせから1営業日以内に返答を出せるか、必要以上に金銭を要求しないか、折り目正しく美しく対応できるか、どこまでの個別サポートをできるか。

それじゃだめだ。

テクノツールから発表になった「あいうえおキーボード」(製品写真)、、中身の仕組みなんてどうでもいい。ただ、ひとこと「MSXのキー配置と違うのが気に食わないぜ」と言いたかったりする。

私が持ってたMSXは、「1~5」が「あ~お」、「Q~T」が「か~こ」という風に、横に並んでいた。なのにどうだい、この1行増やした配置は。もうだめだよ。「CTRL+C」とか「CTRL+V」とか、押しにくそうじゃん。あぁ、もう絶対駄目。

誰か、助けてやって。

何を問うのか

何を問うのか、ということが、この職業には最も大切な能力だ

森博嗣「キラレ×キラレ」

使えるものは何でも使え。

人の悪いところをみて、自分の悪いところを正す。

それがつまり「人の振り見て我が振り直せ」、もしくは「他山の石」だよ。

他所の石を使ってでもいいから自分を磨きなさいってこと。

スモモの木

李(スモモ)の木の下で手を挙げてると、李(スモモ)を盗んでいるように見えるだろう。だから、自分の大事な冠(かんむり)が曲がっているのに気づいたとしても、あらぬ疑いをかけられないように冠(かんむり)は正しちゃいけない。

つまり「李下に冠を正さず」っていうのは、そういうことさ。

2007年の僕へ。

2007年の僕へ。
元気ですか?2007年ごろの自分のことを懐かしく思い出します。 僕は71歳で、つまり西暦2052年に、ちょっとした怪我が元で生涯を終えます。 振り返ってみると、良くも悪くも、自分らしい人生だったと満足しています。

だたひとつだけ過去の自分に、つまり今のあなたに伝えておきたい事があります。 それは 2016年の冬のこと、僕はひょんなことから、ある人と同居生活をすることになります。 振り返ってみると、それは人生の大きな分岐点でした。怖がることではありません。 楽しみにしていてください。

最後にひと言、71年間生きてみて思ったのは「人生の無駄遣いなんてない」ってこと。 それでは、またいつか会いましょう。 これから先の人生もチャレンジをおそれずに。

reshia - 2052年の天国にて

というのを、「天国からのメッセージ」というサイトでやってみた。つか、振り返ってばっかだな。天国行っても気楽に過ごそうぜ!

直せ、直すんだ。

#ifdef _MSC_VER                // _MSC_VERが定義されていたら
#pragma warning(disable:4101)  // 未使用仮引数の警告を出さない
#endif

あほか。

ちょっと迷った

なぜ今の会社を選んだのか、なぜ今の仕事を選んだのか、
なぜ今の業界を選んだのか、ちょっと悩んだ。

原点を探ることで、ちょっとわかった。

ロストプラネットをやった。

ロストプラネットの新品が3980円で売ってたので買ったら、11月に廉価版が発売されるらしかった。。と、そんなこんなで、この土日はロスプラ、ことロストプラネット三昧でした。

感想

カプコンさんには悪いですが、私はあまり面白いとは思えなかったです。まぁ、よく言えば卒がない、悪く言えば、いまいち面白みにかけるゲームでした。

ストーリー自体に関して言えば、大筋は面白そうなのに、実際見てみるとコレっぽちも面白くない洋画のような仕上がりでした。アクション性に関していえば、可もなく不可もない操作感で、いまいち気持ちよさがないというか、やっぱり面白みのない感じでした。

オンライン対戦に関して言えば、ま、こんなもんかなって感じでしたが、あえていうなら、本編とオンライン対戦部分の面白さはドッコイドッコイでした(悪く言えば、両方そろって一人前)。

全体的に言えば、7000円も払って買おうと思うほどのゲームではないという感じです。話題先行な印象です。4000円ならもっと売れたでしょう(11月から3000円)。

はい、いつもの点数は6点(10点満点中)。

MTフレームワーク

開発には、カプコン内作のMTフレームワークというのが使われているそうで、フレームワーク部分が協力なのはわかりました。おそらく3D関連のフレームワークなので、3Dモデルが浮いてしまったり、飛んでいってしまったりといったバグらしいバグはあまり見当たらなかったです。

ま、ただMTフレームワークの開発は、ロスプラとデッドライジング開発と並行して行っていたと聞きます。なので、まだまだこれからゲームの面白さを追及していってもらえたらいいなと思いました。

著作権、特許の大きな間違い

著作権や特許が間違っている理由。

  1. 違反金があること
  2. 保護期間が長すぎること
  3. 多重搾取すること(CDの場合、作る・買う・コピーするときに搾取)
  4. 何よりエンドユーザーに負担がかかること

こんな感じだと思う。

ミニチュア・東大寺を作成。ただし、Photoshop。

ミニチュア・東大寺

どうでしょう、ミニチュアに見えますでしょうか?

どうも大きく写った被写体に大してミニチュア化をしても、あまり効果薄いようです。残念。

プログラマ VS デザイナ

2007年9月8日、自宅より。

僕が思うに、プログラマでもデザイナでもやってることはそんなに変わらないと思う。向かうゴールが違うけれど、一所懸命、技術、手法、流行を取り入れて、どんどドンド変わっていかないといけない。プログラマとデザイナが闘っている場合じゃない。

プログラマはもっとデザイナの技術を取り入れて、デザイナはプログラマの技術を取り入れる。お互いに高めあっていきまっしょう。

ハックルベリー・フィンと2ch横断

最近、「痛いニュース」さんとか「すべらない名無し」さんとか経由で2chを見ることが多い。で、思ったこと。

2chをよく知らなかった自分は、ただのバカの集まりかと思ってた。だけど違う。とんでもない、巨人でした。2chの人たちがどうこうというよりは、2chが人。多くの人からの知識をあたかも全体での知識だといわんばかりの、集合知を体現したかのような人。

鳥取砂丘ハック事件でも、とんでもない速さで個人情報が特定されるし、犯人たちの誰かが2ch書き込んできたときも、ちゃんと「謝れ」と謝罪の機会を与える聖人君主みたいだし、ほんと、すげぇ。

すべらない名無し」さんとか見てても、とんでもない面白さで、いつも笑えるし。ほんと、すげぇ。いったい何人の人が2chを読んで書き込んでるんだろう。これほど巨大なメディアはないんじゃないかと思う。

で、そんなこんなで、2chブラウザーが欲しくなってきた。

ハクションマーク

↑なんのこっちゃ。

なにやら「拍手」と「ブックマーク」というボタンをつけてみた模様、←といっても、自分が管理者なんで自分で取り付けたんですけどね。

とりあえず自分で「拍手」、ぽちっ♪

そのRGB-YUV変換(YUV-RGB変換)間違ってない?

RGBからYCbCrへ表色系を変換する式は、Wikipediaによると以下の式になっています。

RGBからの変換式は

  • Y = 0.29891 × R + 0.58661 × G + 0.11448 × B
  • Cb (U) = -0.16874 × R - 0.33126 × G + 0.50000 × B
  • Cr (V) = 0.50000 × R - 0.41869 × G - 0.08131 × B

逆にRGBに変換するときは

  • R = Y + 1.40200 × Cr (V)
  • G = Y - 0.34414 × Cb (U) - 0.71414 × Cr (V)
  • B = Y + 1.77200 × Cb (U)

この式自体は、色々なバージョンがあってややこしいのですが、一応「ITU-R BT.601」と「ITU-R BT.709」あたりが標準っぽいです。ま、それは良いんです。それは。

そのRGB-YUV変換(YUV-RGB変換)間違ってない?

式の細かな値などは瑣末な問題です。そんなことを議論しようってんじゃないです。それ以前に、RGB(255,255,255)がRGB→YUV、YUV→RGB変換を経て、ちゃんと元に戻りますか? あるいはRGB(235,235,235)がちゃんと元通りに戻りますか?

RGB(255,255,255)がRGB(254,255,254)になるのは、まぁ計算誤差であったり、YUV表色系にしたことによる劣化だったりするかもしれないですが、RGB(255,255,255)がRGB(235,235,235)になったり、RGB(220,255,241)がRGB(214,235,232)になったりしてるのであれば、ちゃんと変換式とその使い方を見直してください。

ポイント

見直すポイントは、以下の3つです。

  • 小数点以下を切り捨てていないか。
  • RGB/YUVの値域からはみ出していないか。
  • RGB/YUVの値域を見直すべし。それによって使える変換式は異なる。

全部、プログラム上で行う場合

通常、PC上ではRGBの値域は0~255です。RGBからYUVへ変換した場合の値域は、「16~235(UVに関しては16~240)」とします。

※ UVの値域を-128~127としても良いのですが、今後DCT変換をさらにかます場合や量子化する場合に負値は不便となるので

※ YUVの値域を「0~255」としても良いのですが、YUVからRGBに戻す際にRGBの値域「0~255」からはみ出してしまいますので、あらかじめ丸めておきます。

↑ 丸めておくことで、235や0といった値が連続して、JPEGやMPEGでの圧縮率が上がるものと思われます。

さて、このような条件でRGB→YUV変換する場合は次の手順で行います。

  1. RGBの値域を16~235に変換する(→各成分に「219÷255≒0.8588」をかけて、16を足し込む)。
  2. YUVへ変換する。(UV成分には128を足して正の整数にしておく)

※変換式は、Wikipedia掲載のものを使います。

逆変換(YUV→RGB)は、次の手順で行います。

  1. RGBへ変換する。(UV成分は128を引いておく)
  2. RGBの値域を0~255に変換する(→各成分から16を引いてから、「255÷219≒1.164」をかける)。

※変換式は、Wikipedia掲載のものを使います。

画像を1枚変換→逆変換してみて、オリジナル画像との差分をとって計算間違いがないか確認します。計算誤差の場合はせいぜい1~2程度ですが、計算間違いをしていると各成分にておいて10~20くらいの色差が出てしまいます。

まとめ

だいたい書きたいことは以上です。なにか間違っていたら、ご一報ください。

以上

参考サイト

10万ヒット、1000円。

佐世保を食う
たいていは、検索でひっかかってるのだと思う。
そんなこんなで、10万ヒット御礼、佐世保バーガーの美味しい写真です。
このサイズでも飽きない美味しさが佐世保バーガーの良いところっすね。

あ、値段は1000円くらいですけど。

ま、10万アクセスされようが何されようが、いつもどおりで済みません。
変わるつもりもありません。

うぃは、めたセコイわ。

ゲーム機うぃってあるじゃない。あれ、初めから売り上げ黒字だと思うんだ。ひどいよ。今までのゲーム機だったら、初めは赤字なの。でも結果的には生産コストを下げることで黒字に転じる。でも、うぃったら初めから黒字だと思うんだ。

メモリ削減

まずひとつに、メモリをケチってる。どれくらいセコイかっていうと、「16:9の映像も映せます」っていうか、それが推奨のくせしてメモリ上は最大「640x480」ピクセルまでしか載せられないの。いや、ちょ、ま。720x480(DVD)ではないの?? というか昨今の16:9といえば、ピクセルアスペクト比1:1だから、854x480のフレームバッファ必要でない??

6kHz

うぃって、リモコンコントローラあるじゃない。あすこから、音が出るじゃない。あれも酷い。帯域6kHzって噂だよ。つまり3kHzの音声しか出せないの。それってつまり、人間の声でサ行の音声を入れると、聞こえないの・・・。これは酷い。

知ってか知らずか、これは酷い。

その他

だけど儲けられる。つくる人からすれば、市場が大きいし、かかるコストも低い。だから割と安心して作れる部分もある。それにだいたい作ってるのはN様から近い会社ばっかり。酷いことに、会社によってDVDメディアの値段が変わるそうだし、なんというかひどい話だ。

しかし、京都の夏は暑い。だから勘弁してやろう。

iPod!

iPodってあるじゃない。Appleから出てる携帯型デジタル音楽プレイヤー。nanoとかshuffleとか色々あって色バリバリで馬鹿売れなやつ。自分もnanoとshuffleを持ってたりするやつ。

あれさ、「iPod!」ってびっくりマーク(エクスクラメーション)つけるとさ、ちょうど反対から読んでも「iPod!」に何の。すげーすげー。

ためしに、ディスプレイ逆さまにしてみ?

Lost Odyssey公式サイトオープン

Xbox360用ゲームソフトLost Odysseyの公式サイトがオープンしています。今年のE3で公開されたムービー(マーケットプレースで配信済み)のものや、FLASHを分解すればJPG画像が取り出せます(おw)。

Lost Odyssy(ロストオデッセイ)は、スラムダンクの井上雄彦氏がキャラクターデザインし、小説家の重松清氏がストーリーを考え、さらにゲーム本編の製作はFINAL FANTASYシリーズでお馴染みの坂口博信氏が総指揮をとるミストウォーカーが作成しています。また背景音楽については、これもFINAL FANTASYシリーズでお馴染みの植松信夫氏が手がけています。

ミストウォーカーといえば、2007年初めに発売されたブルードラゴンがXbox360の売り上げにも貢献しているようです。

信濃毎日新聞のCM

新海誠、信濃毎日新聞のCMより