2007年6月29日

モデレータとナレッジマネジメント

Webで探すと幹事長、進行役という意味で多用される「モデレータ」。
このトピックでは、「管理人」という意味で使っていきます。
現在、仕事場(客先)では別の支社と共同で作業を進めている案件があります。
自分も最近、そういった案件に参画しました。
とはいえ途中からの参画なのですが、案件の中でもチームがあり、そこのえらい人が大変な人でした。
どう大変かというと、まぁ悪い方になんですが非難とか通り越して既存メンバがみんな笑っています。
その案件でもナレッジマネジメントにExcelを使った質問表を採用しています。
これ自体はぽつぽつ見かけるモノなのですが困ったことに、チーム内でこの質問表の使用が徹底されていません。
この場合、そのえらい人がモデレータになるわけですが、えらい人は表に挙がった質問の返事しかしません。
打ち合わせなどで突発的に発生した質問とそれに対する回答を事後反映する、ということをしません。
というか、そういうケースが想定されていませんし、それは誰が書くかも決まってません。
他にもこんなケースがあります。
質問を挙げたら「質問書いた」と投稿者が通知しなければいけません。
んで、えらい人はそれに気づかず放置することがあります。
となると仕打ちを受けた方は、人力でそこまでやってその扱いかよ、とへこみます。
それが続いた結果みんなニコニコ・・・と。個人的には勘弁して欲しいところです。
モデレータが絶対的に機能しないと支障が出るナレッジ管理は正直不便です。
質問表の管理がモデレータ依存というモデルもその人に会社を休まれたら問題が詰まれる一方です。
バス問題に当てはめるのは言い過ぎかもしれませんが、かなりのレベルで困ります。
では、モデレータに依存しないようにすれば良いのか? と言うとそうでも無いように思います。
WikiやRSSなどの機能を使えば上述の問題は軽減できると思います。
ただ、この質問表などのファイルは案件によっては納品物になる場合もあります。
そうなることを危惧するとブラウザベースのデータ、すなわちPCでのアプリケーションに比べて紙に焼きにくいデータは扱いに余るところがあります。
サーバに置いた*.xlsファイルをデータとしてブラウザ上で見れたりイントラ上のRSSに流せたり出来れば便利だと思うのですが・・・出来るんですかね?
# 納品物になるときはそのデータをインポートして体裁だけ編集だけするとか
ASPとかそのあたりに相当するのかな? とか少し思いました。便利そうなので作りたいかも。

2007年6月28日

WiiWare発表

Wii用ゲームダウンロードサービス WiiWare発表 - Engadget Japanese
子供の頃からの夢をお手軽に実現できる時代に近づいた? とか書くと照れくさいですが、グレーゾーンな自作アプリが技術の基盤になってる自分からしたら「世の中変わった」と思わされます。
レジー社長いわく、「任天堂のSDKや開発ツールはすでに「安い」どころではなくほとんど無料のようなもの。一財産かかる余所の陣営とは違う」

とのことで、どんなSDKやら開発ツールなのか気になります。
# Wii発売直前に岩田社長が開発チームにインタビューしてた際にツールを紹介してたけど
ゲームキューブ時代にF-ZERO GX(こいつが背中を押した!!)やFFCC(ゲームはお通夜w)、トワイライトプリンセスが出せる時点でそこそこの性能なんだよね。
devkitPPC+libogcだとなかなかそれが引き出せないけど。
先週、Xbox360に浮気しちゃったわけだけど、その理由にリアル系のゲームがWiiに少なかった、というのがある。
求めるものが、今Wiiに無かったこと。それが相対的にXbox360の魅力を引き上げた、という結果かな。
とはいえ、まだCreators Clubどころか、Live!のゴールドにもサインアップしてないけど。
Creators Clubは会費が高いこと(個人的には、期間も不安材料)が懸念されてるけど、いい刺激になることを期待。

2007年6月24日

VistaでVisualStudio Version Selectorが動かない?

MSDN フォーラムでもちょっと前に問題になっているVisual Studio Version Selectorの問題があります。
当方では、Windows Vista + VisualStudio2005(SP1) + VC#2005ExpressEdition(SP1+XNA)という複雑環境なんですが、VisualStudioのソリューションを判別してIDEをキックしてくれません。
レジストリまで調べたんですが、どんな風に動いているのかさっぱりわからず。
んで、ふとVisualStudio7.1(.NET 2003)のソリューションを変換する機会がありました。
このとき、変換したソリューションは2005で開けます。
何でだろうと思い、開けないファイルと比較してみました。
- 開けないファイル→UTF-8(BOMなし)
- 開けるファイル→Shift-JIS
Shift-JISで保存しなおしたら開けるようになりました。
これが原因? 詳しいこと知ってる人いない?

Xbox360


今年の欲しいもの計画に入っていた(んでもって春先に優先度アップした)Xbox360ですが、予定より早い段階で購入に踏み切りました。
OSがWindows Vistaになって、環境を整えてるうちにXNAを触ってしまったのがいけなかったw
アイマスやForza2も祭りになるし、世の中どうなっとるんだw
とはいえ、周りからプッシュされていたのでお待たせしました。
・・・「なに作るの?」とか聞かれそうだな。高確率で。

2007年6月21日

省メモリ環境でのファイル名のソート

NDSプログラムを少し再開。
今年の2月ごろにlibfatによるファイル列挙のロジックを書いた。
といっても最低限のコードと確認用のフォント表示のみでモチベーションがあがらない。
リソースが無いので味気ない。早いとこツール整備をしたいな。
さて、やってるロジックについて。
ディレクトリを指定して、ファイルを列挙します。
挙げられたファイル名をstricmpで比較してリストに入れます。
リストとコンペア処理を併用することで、列挙してソート(入れ込む場所を探して挿入)するカタチになります。
リストに入れられるデータの件数は画面に表示できる行数プラス数行といったところ。
これはフォント高さの変更やページ切り替え時のキーとして使うためです。
moonshellを見ると管理するファイルの上限数を定めていて、ページ切り替えとか余計な処理は書いていませんでした。
採取的には、凝ったファイルマネージャを作りたくてこねこねやっているわけですが、利便性と省メモリを両立させるのは難しいです。
また、ファイル名全体でソートをしていたのですが、最近になってエクスプローラよろしく拡張子ソートも出来ればなーという欲も出てきました。
ガワをキレイにしてモチベーションを上げるか、引き続きこねこねし続けるか・・・もっと技術的なことを書きたかったはずだけど。あれ?

PixelCrew日記 - 画像の保存をやっと実装、の巻

ドット書きをしたいのか未だによくわからんグラフィックエディタ「PixelCrew」の開発をだらだら進めてます。
先日、BMPファイルの保存をようやく実装しました。
それから大分経った昨日、BMPファイルの読込みを実装しました。
いままでどうやってソフトに画像を取り込んでいたかというと、クリップボードとTWAINから取り込んでいました。
画像読込みの流れは、次のようになります。
ファイルを読み込む→HBITMAP形式に直す→独自のクラス(ここではキャンバスと呼ぶ)に登録

この「ファイルを読み込む」という処理は、車輪の再開発的な作業で気が乗りませんでした。
その点、クリップボードはPrintScreenキーを押すだけです。
ずいぶん先送りしてきたのですが、プラグインのことを考えていて実装が必要になってきたと思い、重い腰を上げました。
独自クラスであるキャンバスは、レイヤもサポートする予定でいます。
# レイヤを持ったファイルでサポート対象になっているのは今のところリスペクトしているPhotoCrewのファイルだけですが
とりあえず読むだけの現状コードをもう少しラップしないといけませんが、個人でやってるコードぐらいエレガントにいきたいものです。

2007年6月18日

2007年6月16日

まったくもって

手軽な低レベルプログラミング環境として GBA はもっと評価されるべき
そのとおりだ!!
ゲーム開発に憧れたままいい歳になった身からすれば、実機で動くわエミュレータというテスト環境はあるわなんて恵まれた世の中になったんだ。と狂喜せずにはいられない。
おまけにWebの恩恵(技術文書や見えない同志の存在)がかなりでかい。
英語ぐらいなんじゃあ。ワシらが子供の頃はその翻訳対象すらなかったんじゃぞぉぉぉ。
と、まぁ熱くなるのはこれぐらいにして。
カタチになるまでが少し長いけど、gccを使うということでcygwin経由でUNIXコマンドやmakeも覚えます。
# VC2005EEとかで楽するのはその後でも
得るものは大きい・・・のだけど、FF作りたいとかDQ作りたいとかアイマスみたいなド変態シェーディング(褒め言葉)、もしくは興味ないって人が多い。
自分で書いたフォントで"Hello"とか表示できると嬉しいよ?
長々書かんでも届く人には届くのでこれぐらい。まぁ、そういう人向け。
紹介してるtekezo氏のチュートリアルは比較的親切です。ちょっとこだわりポイントがあるので戸惑うかもしれないけど。

2007年6月15日

グラフィックエディタについて

(最近目論んでいるネタ、の続き)
うっすらアナウンスしたグラフィックエディタですが、構想を書き連ねていきます。
できる、できない。もうある、まだない。無茶、楽勝などの考えは今のところほとんどありません。
ということで構想。
名前は「PixelCrew」。PhotoCrewのクローン的なものを作ろう、と思ったので"Crew"という単語を入れたかった。
# じゃあ"Pixel"は? というと、それは後述
PhotoCrewはドット打ちがそこそこやりやすかったが、いろいろ欲しい機能が無かったです。
ということで、ドット打ちやゲームの画像リソース作成に使えるようにしたいなーと。
- 画像の回り込みスクロール(EDGEにある機能)
- インデックスカラーでのパレットの移動(インデックスもあわせて移動)
- スナップグリッド(例:8x8単位でしかカーソルを動かせない)
- 別画像をソースにしたタイル貼り付け(スナップグリッドとあわせることで捏造NES画像を作りやすくする)
- アニメーションテスト(EDGEで言うところのオニオンスキン?)
- プライベートフォント対応
- プラグインによる拡張
- TWAIN機器対応(思いつきで実装してみたり)
- (出来るか不安)レイヤ
- (出来るか不安)アンドゥ・リドゥ
プラグインは、保存・読込みとは別にエクスポートをサポートしたいです。
これは、GBAやNDSなどを開発している際に、ソースとしてコードを吐きたい場合などに使えればと思います。
もちろんエフェクトもプラグインで増やせるようにしたい。
いろいろ挙げたけど、これが整わないと後々大変そうなので発起したいところ。
あと、捏造NES画像のスタンダードになりたいという野望もこっそりあります(w

AdjustWindowRectEx と GetMenuBarInfo

ウィンドウの設定サイズ(SetWindowPosやMoveWindow)は、常にウィンドウのフレームに対する幅、高さを指定します。
クライアント領域から逆算したい場合は、AdjustWindowRectExを使用します。
しかし、このAPIは解説にも書かれているように、2行以上の複数行には対応していません(複数行を考慮しない)。
メニューバーの行数は以外にも取得できないようです。自分がざっと探したところ、出てきませんでした。
ただ、メニュー領域のRECTを取得するAPIとしてGetMenuBarInfoが用意されています。
あんまり使う人がいないのかMENUBARINFO構造体の解説は日本語化されていません。
AdjustWindowRectExをメニュー無しで計算して、GetMenuBarInfoから算出した高さを足してやるのが無難なようです。
・・・と、DeSmuMeでメニューが2段になったときに気づきました。
ただ、メニューにはボーダーがあるらしく、上述の計算では1ピクセル小さくなりました。困るorz
あと、この方法は事前に計算できないorz

2007年6月14日

Microsoft Robotics Studio

CodeZine:Microsoft Robotics Studio 1.5無償リリース 「相撲ロボット作レマス」
初っ端のリリース時にニュースを見たんだけど、既に無償リリースって・・・eMbedded Visual Toolsみたいな運命をたどりそう。
あと、ターゲットになるロボの情報がないんだけど?

ちなみに、相撲プログラムのシミュというとSUMOTORI DREAMSを思い出す。
仮想的に対戦できるんなら、Terrariumみたいなバトルロイヤルとかも出来るかな?

2007年6月13日

こんなん出とる

Xbox 360™ ワイヤレス ゲーム アダプター
開発だけの投資だとワイアレスは高いけど、ワイヤードの3メートルも正直困るぐらい長い(w

はじめて取り込んだ絵

TWAIN対応のコードを組み込んでみました。

BMPで保存してほかのソフトで加工したんだけど、全部自分のソフトで済ませられるようにしたい。

2007年6月12日

TWAIN機器

最近のUSBでWindowsなイメージスキャナのほとんどは、TWAINという規格に準拠しています。
TWAIN - Standard for image acquisition devices.
# 別にWindowsという縛りはさほどないのですが
公式サイトから仕様書や開発キット、果てには対応アプリ向けのヘッダファイル(これひとつだけ導入すれば開発できる手軽さ!!)がダウンロードできますが、意外にも日本で使ってる人や解説をしてる人はあまりいません。
そんな数少ないTWAINの解説サイトのひとつがこちら。
TWAIN操作について
サイト管理者のtsugu氏は、大学の卒業論文にDIBを取り上げたこともあり、このページもわかりやすい解説です。
TWAIN機器からの取り込みはもとより、複数のTWAIN機器から使用するデバイスを選択する処理まで書かれています。
# と言っても、メインの機能はこのふたつですが
公式の仕様書はPDFで500ページ超というボリュームです。
しかも英語なので読むのは大変です。
それに比べてtsugu氏の解説はシンプルで十分なコピペソースになります。
すぐにでもTWAINの機能を使いたい人は、このページを読んで適切な場所にコードを貼れば目的の80パーセントは達成できます。
イチから解説を書くとしても参考にしてしまいそうです。
論文というのは、参考(引用?)にされるほど優れているそうですが、まさにそのとおりだと思いました。

GPUによるエフェクト

世界初のGPUを使ってサクサク動く画像編集ソフト「Pixelmator」 - GIGAZINE
mixiでも書いたけど、こっちでは踏み込んだコメントを。
前から思ってたんだけど、OpenGLとか3Dアクセラレータの機能って2Dグラフィックツールの機能として使われてないような気がするんだけど。
テクスチャにするだけでかなりのエフェクトが使えると思うのは、素人考えですかね。
昔、DirectXでStretchBltをハードウェアに任せたら補完するカードとしないカードがあったことを思い出した。
チップごとの微妙な差が出るんで今まで使われていないとか?
それとも、自分がいろんなツールに手を出してなさ過ぎなんでしょうか?
Shade(3Dツールはこれしか使ったことない)もプレビューが早いだけで、本格的にレンダリングさせるとソフトウェアに描かせてるみたいだし。
知ってる人いたら教えて。

「言われたことしかしない」という主張と「言われたことはやっている」という主張

言葉遊びかなにかのギャグかと思ったんですが、本気でそう主張する現場に遭いました。
確かに間違ってはいないのですが、それだけでは期待されなくなってしまいます。
この「言われたことしかしない」評はWebを探すと掃き溜めのごとくヒットします。
そんでもって、ほとんどが愚痴です。
# 一生懸命やってる人がこぼすコメントを愚痴といってしまうのも気が引けますが
「プラスアルファを期待する」とか「それじゃあロボットと同じ」とか、こき下ろすことは案外簡単です。
自分のこのトピックがそういった方向に流れそうになりました。
ところが、カウンターというのは、がんばれば繰り出せるもので納得しない人もいます。
その人の指し示す正義のベクトルに反するからです。
なので、この評論には石を投げません。
マストでやって欲しいことはきちんとお願いするようにしよう、と思いました。

言われたことしかしないことは絶対的に悪いことではないと思います。
ただ、出来る人には期待をかけるものです。
気に入られたい、評価を上げたい、と少しでも思ってるなら"期待に応えること"を先に提供してあげるといいのではないかな? と思います。

2007年6月11日

最近目論んでいるネタ

(XNAことはじめ、の続きです。)
優先順位の順に書いていきます。優先順位はモチベーションとはイコールでありません。
- グラフィックエディタ
- ファミコン風画面捏造
- NDSでなにかアプリ開発(oggプレイヤ、ファイルマネージャ、poboxを移植してメモ帳?とか)
- XNAでなにかゲーム(2Dでなにか、ちょっと変わったリバーシとか)
グラフィックエディタ以外のことに手を付けたいのですが、グラフィックエディタを真っ先になんとかしないと効率が見込めない予測が自分の中で立っています。
これまで自分は、PhotoCrewというエディタを使っていました。
このソフトの開発元であるMET'Sは数年前に権利移譲してしまいました。
権利譲受された先でも開発・販売は止まっている模様。
XPまでは対応していたので、今持っているものをそのまま使えばいいのですが、Vistaでは動きが微妙です。
スピンボタン付きのエディットが手入力で値が変えられなかったり、エフェクトをかけると待たされたうえにビジーになったり、よくわかりません。
また、グラフィックエディタ以外のネタで一番に用意するものが画像リソースです。
PhotoCrewは安価な割に使いやすいエディタだったのですが、欲しい機能がいろいろ欠けていました。
たとえば選択範囲の手入力指定(マウスでドラッグする方法しかなかった)とか。
自分が欲しい機能が他のエディタにあるのかはわかりませんが、ちょっと作ってみようかな? と思い、だらだらやっていました。
- MDIのスケルトン作成
- 拡張貼り付け(Shift+Ctrl+Vでクリップボードにある画像を新規画像として取り込む)の実装
- レイヤの実装に耐える画像リストの設計
・・・ここまでやって疲れてしまいました。
やめる気はないけれど、なんだか半端そうなものが出来そうで一人で抱え込むのは危険です。
俺様ジンクスに「カタチになる前に公言するプロジェクトは破綻する」というものがあるのですが、これに当てはまることもあり、静かにしていました。
が、黙っているものが確実に成功することもなくて、このままもやもやしてるのはダメな気がするのです。
というわけで、うっすらアナウンス。
グラフィックエディタ作ってます。

XNAことはじめ

先日、液晶モニタと一緒に買ったものがあります。
Microsoft Xbox 360 Controller for Windows
何をいまさらはばかっているのか、と思われますが、少し前から「OSもVistaにしたし、XNAを早めに触ってみたいなー」と思っていました。
とはいえ、開発系のネタに食傷気味だったこともあり、買い物の優先度をうっすらと下げていました。
でもそれも時間の問題で少しずつ環境が整ってきました。
とはいえ、食傷に変わりはなく、困っていました。他にもやりたいネタあったし。
どうしようかと思いながら前から眺めていたXNA Game Studioメモを見ていると"素材拾い用のサンプルゲーム"というものを発見。
これで遊ぼう。
RacingGameをダウンロードして導入。
やたら長いビルドを乗り越えて実行。
サンプルにしては遊べる。ちょっとモチベーションあがった。
これはすげぇかも。でも素材を作る環境が・・・環境が。
続く。

2007年6月8日

「もしも」を想定する - コーディング編

もしもを想定する、の続き・・・というか書いていて思い出したことです。
もしもを想定することは、プログラムに結びつければisNullなどの値テストに相当する事だと思います。
その昔、学生だった頃にゲームを作っていたときに成績や操作設定をファイルに保存していました。いわゆるセーブデータです。
ファイルというのは、バイナリエディタで書き換えが出来ます。
セーブデータをいじられればチート(改造)になってしまいます・・・が、そんなことの対策まで学生の自分は対策できません。
大方、ゲーム設定の境界値を跨がないようにすることを入念にやっていました。
はっきりいってやりすぎです。
コーディング規約で「ポインタのテストは必ずすること」というルールがありました。
テストすることはいいのですが、システムが大きいため、数多くのレイヤで同じテストをします。
あるメンバが「意味があるのか? 読みにくいだけだ。タイムクリティカルなときには負荷にもなる」と言ったことからチーム全体で検討することになりました。
結論は「意義を判断できる人間がコードを書いた人だけ。怖いので外すのは止めよう」ということになりました。
とはいえ、isNullもやりすぎると読みにくくて煩雑です。
以上。思い出どころか、ここ最近まで問題になったネタでした。

「もしも」を想定する

Geekなぺーじ:エンジニアは下らない質問をする
「~はやったらダメ」といわれたら「なんで? なにが起きるの?」確認するのは技術屋肌なんですかね。
# 教えてくれなかったら自分で確認するし(w
自分は、もしもの場合に関するナレッジを抑えておくことは一種の安定指向だと思っています。
が、人によっては「失敗することを考えるから失敗するんだ」という理論でNGケース時の対応を考えない人もいます。
過去に、とにかく成功プランしか考えないえらい人がいました。
例によって、NG対応が皆無だったのでいろいろ突っ込んでみたら結果的に「失敗はありえないから黙ってろ」と一喝されたように覚えています。
自分の過去に遭ったことなので「ありえないはずの失敗が起きた」ぐらい書きたいのですが、顛末までは覚えていません。
ただ、その一喝に納得しなかったのでNGケースを考えることは止めてません。

2007年6月4日

Famicompo mini classical

週末目前の締め切りに「あんまりだ」との声があがった・・・かどうかは判りませんが、締め切りが延びてましたがこれに関しては気の長い自分からしたらクオリティアップするなら少しぐらい待つのは平気。
って事で楽曲公開&投票開始です。
ダウンロードは公式サイトからどうぞ。

# やっぱりとは思っていたけど「もってけ! セーラーふく」のエントリーも!! ったく誰だ。聞く前からワクテカじゃないか

2007年6月3日

WindowsXPで自分だけ強制的にクラシックスタイルになる(XPテーマハックもどき)

あるとき気づいたのですが、WindowsXPのコマンドプロンプト(cmd.exe)はLunaが有効でもクラシックスタイルのフレームで表示されます。
cmd.exeはその性質上、特殊な扱いでそういうものかと思っていました。
Vistaでは他のウィンドウと同じテーマが適用されていますが、XPのcmd.exeにLunaが適用できるかはわかりません。
ウィンドウの概観を凝った作りにしたい場合、テーマを無効にしたいケースが出て来ると思います。
Windows XP ビジュアル スタイルの使用
書いてあることそのままですが、SetWindowTheme APIでテーマの適用をカットすることが出来ます。
ちょっとした小ネタですが意外に便利です。

2007年6月2日

液晶モニタ導入に潜む罠、の巻

ローカルではずいぶん前から買う買う言っていた液晶モニタをようやく購入しました。
ここ一ヶ月、Webで値段をちょこちょこ確認していたのですが、今週突然現れたHyundai IT N220W
LG電子とかAcer(エイサー)の22インチが\36,000-持っていけばいいぐらいの値段だったんですが、それを大きく引き離して\33,000-で登場。
過去のモデルも悪評は無くまずまずの品っぽいです。
さて、いつになく早くに目がさめてそれと無い時間まですることが無くて困る。
# わくわくしてる
ふらっと買いに来ました、的な時間を見計らって大須へ。
ほかにも小物を買う気で来たので、それを先に買って最後にモニタ。
帰ってきて早速セッティング。
点けてみると、やっぱり広い。
奥行きが無いので狭いデスクでも正面における。これは素敵。
・・・と思ったら、突然画面が暗くなりそこに「信号なし」のメッセージ。
なんじゃこりゃ? と思い怪しそうな箇所を調べる・・・と言っても変わったのはモニタ。
ほかのハードは今まで安定稼動してきたものばかり。
原因が挙げられず、やったことを一通り書き出し、店に電話。
店員さんにアドバイスをもらってみるもやっぱりだめ。
アドバイスの通りやって駄目だったら初期不良の可能性があるので持ってきてくれればチェック、場合によっては交換します、との事だったので持っていく。
店のチェックマシンでは再現せず。二人そろって店の一角で渋い顔をして帰ってきました。
買ったモニタは、DVIが1ポート、VGAが2ポートある。
DVIだと現象が多発。VGAだと出ない。
使っているビデオカードはDVIとVGAとビデオ出力が各1ポートずつ。
DVIとVGAの両方にケーブルを挿していると稀に出ます。
DVIポートをもっと疑うべきだったかなー・・・と思いながら安定したVGA出力でWebを眺めていたらタスクトレイあたりにポップアップが。
"nvlddmkmが応答を停止しましたが、正常に回復しました。"
nv・・・nVidia関連?
って事で探したらありました。
KOMVOY.NET : nvlddmkm.sys の停止
ほかにも記事はありましたが、面倒くさいので検索結果をどうぞ。
nvlddmkm vista - Google 検索
端的に言ってしまえば、nVidiaのドライバによる不具合だそうで。
本日現在の最新ドライバでも直ってません。ウチで出たんで(w
ちなみに、この不具合で落ちると多くの人は例外で青バック、と報告してます。
ウチでは何も映らなかったです(w
とりあえず、VGA出力で安定してるのでそれで当分いきます。
DVIもなんとなく使ってみたかっただけなので画質とかにはあまりこだわってないので平気・・・平気だよ。
それを除けば買ったモニタはいいものでした。マ・クベの壷ぐらい(w

いろんな人と触れること

むかし、SourceForgeのDreamCast開発ツールプロジェクトに一度だけコードを取り込んでもらったことがあります。
成果はいただく割に貢献したことがほとんどないオープンソースコミュニティに関する記事を見つけました。
Geekなぺーじ:オープンソースコミュニティ運営方法

これを読んでぎくりとしました。
ソースとなるビデオは見ていません(ヒアリングできない、仕事場では回線の独占になる・・・これは言い訳ですね)が、要約に紹介されているケースは見かけたこともあるし、自分にも当てはまっていた(過去形にしたい)ものもあります。
給料をいただいているいわゆる仕事のプロジェクトチームでも毒を見てきたし、毒になったこともあります。
おとなしくしすぎても毒になってしまいます。
これから自分が教えないといけない後輩たちには、正しいことを教えないといけません。
ただ、正解はひとつではないので、言葉にこだわってはいけない。
相手の言葉を自分の中で置き換えること、たまには自分の言葉で言ってみること。
バランスよく協調することが自分のためになること。
自分の考えは理論ではなくて経験則(持論)なので、いつも説得力に欠けます。うまいこと伝えられないかなぁ。

2007年6月1日

国際化対応に関する設定をいじってみて思ったこと

やってる人にとっては当たり前。知らない人にとっては超面倒。
実装だって遠回りの力技になってしまう機能ってたくさんあります。
そのうちのひとつ、国際対応について。
GMAN: Windows XP Japanese Input
WindowsXPのコントロールパネルには'地域と言語のオプション'(Regional and Language Options)という設定があります。
ここでは地域ごと表記の代わる項目である、カレンダ、時刻、通貨の書式設定が出来ます。
'2006年11月17日'を'11/17/2006'としたり、\59,800-のカンマ(千と百の間の区切り)を外したり出来ます。
# 何の日で何の値段かは・・・ね、いいじゃない(w
また、時刻の表記は9時以前であった場合、'9:23'のように一桁になっているのが初期状態ですが、これを'09:23'のようにゼロパティング(ゼロで補間する)ことが出来ます。
実はこの書式に出来ないかとずっと悩んでました。
# エクスプローラの列表示が左寄せなので端が揃わなくてカッコ悪いなとずっと思ってた(w
'地域と言語のオプション'には、このような書式設定以外にもコードページが非ユニコードであった場合、どこの国の言語とみなすかを設定できます。
この設定を駆使すれば、英語版Windowsでも日本語アプリを文字化けなく表示が出来ます。
このような地域に依存する設定を'ロケール'と呼び、Windowsでは上述のような地域(言語)別の対応を'National Language Support'(NLS)という機能で実現しています。
NLS機能に関わるAPIをNLSAPIと呼び、GetLocaleInfoなどはそれに属する関数になります。
NLSを利用することで、アプリが独自で言語設定を保持しなくていい、という設計が可能になります。
# もちろんしてもかまわないのですが
また、選択されているロケールに応じて表示するメッセージを切り替えることが出来ます。
例として、日本語ロケールが使える場合は日本語表示。それ以外の場合は、アスキーコードのみの英語表示。
海外で現地OSを使っている外国人(日本人も含みます)向けのニッチなフォローですが、出来たら出来たで便利だと思います。

・・・あと、これを書いていて思ったのですが、ソフトウェアの世界では英語を公用語にしたほうが都合がいいですね。
いまさらながらちょっと寂しい気もします(w