2012年3月19日月曜日

日本人の「EXCEL好き」は異常

文句です。代替案については別記事で書いてます。

プログラマ業界でも、「EXCEL仕様書」で悩んでる人は多いと思います。
仕様書を書くのはプログラマでも、それを受け取る人は「非プログラマ」なので、
アウトプットとして「EXCELで見る」方法を選ぼうとします。
何ででしょうね。正直小生には判らない世界です。

これがSI/IT業界を泣かせたり泣かせなかったりします。
具体的には小生は泣かされたりした方で、あげくゲーム業界に出稼ぎに出てたりますが
それはまた別の話。

ちょっと検索してみると、2006年辺りから予見はしていたっぽい。
http://www.atmarkit.co.jp/news/200611/02/hitachisys.html

EXCEL好きは、「日本人」の「帳票文化」即ち「罫線好き」が原因だと思います。
「綺麗な帳票で出力する」そのためのフォーマットとしてEXCELを要求するのは、日本人の特徴ですね。小生は認めたくはないですが。
http://news.mynavi.jp/articles/2009/11/04/form2/index.html

そしてこれは、外国人(本稿では敬意を込めてこう言いますが)は全員驚いてます。
http://slashdot.jp/story/11/09/30/040224/%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%8C-Hacker-News-%E3%81%A7%E8%A9%B1%E9%A1%8C%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F
小生がする筈だった反論は、全て前述のURLで述べられてると言ってよいでしょう。

SI/IT業界での「顧客要望」は大抵この通りです。
http://slashdot.jp/comments.pl?sid=546769&cid=2027351
笑い話にしかなりませんが、笑えません。

これを踏まえて、「VBAホスティング」などというサービスもあります。
http://jp.fujitsu.com/platform/server/primergy/pccluster/excel-hpc/

笑い話にしかなりませんが、笑えません。

言うまでもないことですが、あえて言いましょう。「表形式でないデータ」を、「表計算ソフト」に入れることは異常です。

彼らにとって大事なのは、「業務を効率的に遂行する」ことではありません。「罫線を綺麗に引いて」「罫線の中に綺麗に文章を流し込むこと」です。とここまで書いて、MS-DOSの時代から続いている文化のような気がしてきました。

そしてそれらの書類は、最終的には印刷して、課長にハンコを貰います。綺麗に書けるし、書き直しも楽だし一石二鳥。これ以上のソリューションはありません。俺ってアッタマイイ!

電子データのまま活用しようとか、検索しようとか、そんな発想は、逆さまに吊るしても出てきません。そしてその書類を受け取った人は、それをまた別のExcelシートに手打ちで番号を振ったりします。これが最善です。

目的はあくまで、「罫線「以外」」の筈です。それを罫線を最優先でツール選択をしています。ここに日本人の本質的な異常性があります。目的と手段を入れ替えるのです。そしてその為に派生した業務を無駄と思いません。故に「EXCEL作業より効率的になる」という主張は彼らには届きません。「EXCEL作業」が最善だからです。


こんな事を書いている小生も日本人で、EXCEL嫌いですが、世界広しといえど、ここまで「EXCEL好き」な人種も珍しいでしょう。故に、「日本人のEXCEL好き」は耐えがたい事実です。

帳票だったらまだ良いですが、ガントチャートだったら最悪です。土日をまたいでその分の長さを手動で直すとかあり得ません。いいマクロがあるよって?そんな話はしてません。

以上を踏まえて、小生は「EXCEL好き」を「目的と手段を入れ替える人」と判断します。

2012年3月14日水曜日

GOD EATER BURST 今更バレット

DAZEが一区切りついたので、またしてBURSTやってます。
Vitaで遊ぶために改めてダウンロード版を買おうかってぐらいに。

2キャラ目のデータもとりあえずクリアは出来たので、オーソドックスに白武器(ランク10)製作&素材集めなんてやってますが。

プリティヴィ マータの肩

まずは氷結系。防寒タワーで必要だった気がする。女王氷鎧

鎧だっていうから、マータの腕のトゲかと思って必死に叩いてましたが別件でした。
見たら頭の横にあるトゲって話で、エラもしくはエリじゃねえか!
小生の技術ではとても狙ってられない。と思ったらそう思ってるのは世界中に居るらしく、専用バレットが当然存在してました。その名も「プリティガン」まあ小生はこの名前はどうかと思うので「白猫肩」とか付けてます。
http://www21.atwiki.jp/godeater-wiki/pages/53.html#id_15298ccc
空中で、制御が静止して、L弾を2発撃つだけですが、ホーミングの緩さと、キョロキョロ見回して着弾が散るのが幸いして、トゲに当たる当たる。

空気録画でしたが、動画を挙げてる人がいらっしゃいました。
http://www.youtube.com/watch?v=Z9Bp5dvbx4k



もちろんホーミング使ってるので、このままでも、グボログボロの背ビレ破壊できなくもありません。もちろん内臓破壊弾の方が効率は良いです。

ボルグカムラン族の針

バーストは貫通系の武器がかなり強く、その為には大量にボルグカムラン素材が要ります。特に針だの針片だの神針だの。

小生の場合、転んだところを馬鹿正直に叩くか、エイミングで馬鹿正直に狙い撃ちしてましたが、これまた有りました範囲攻撃。「太刀斬り」
http://www16.atwiki.jp/godeaterburst-wiki/pages/251.html#id_e5f6e033
M弾の弾速を利用して高さを微調整したのち、追従放射がグルグル回ります。
その高さが見事に針の辺り。放射を使うということでブラスト砲が望ましいらしく。
お蔭さんで、作りっぱなしのビューグル砲が復活しました。




コイツは範囲狙い撃ち攻撃用としてはかなり使い勝手が良いです。

前述のwikiは、あくまでボルグカムラン族の針用ですが、ギリ味方に当たらず、の高さまで低く微調整すれば、盾にバリバリ当たります。またオウガテイル族コクーンメイデン族の雑魚を一掃できます。そーかコイツがかの有名な「乙ガテイル」かと。後者はとりあえず作って損無し。ジャンプして打てば、本来の針折りにも使えます。弾切り替えが面倒なときはコレで。

しかし、これをアバターに持たせるとちょっと話が違ってきます。NPCはエイミングしようとするので、斜めに発射します。つまり、放射回転が斜めに回ります。綺麗ですけど、危なくていけねえ。

この辺りから、実用オラクル量が尋常で無くなってくるので、標準100OPでは、1発しか撃てません。節約あるいはトリガーハッピー必須。何気なくアルカイオスとか作った後だったので気づいてませんでしたが、難易度7を過ぎないと造れないんですね。

汎用爆殺バレット


最初に見たときは、カノンの秘密特訓に悩んでいた時です。検索してみると、一人で出て、凄い勢いで倒しまくる姿が。
http://www.youtube.com/watch?v=DatgF30v4Sk
そこで使っていた「デルタJGP」なるバレット。肝はそれです。


  1. 足への攻撃数発で、アラガミが転倒。
  2. 急所にデルタJGPをぶち込む
  3. OP切れたら回復
  4. 1に戻る
簡単なお仕事になっちゃってます。小生も、カノンには悩んでいたので、早速造ってみることにしました。かなり有名なバレットらしく、wikiに載ってます。
http://www16.atwiki.jp/godeaterburst-wiki/pages/251.html#id_b0199230
非常に細かい工夫のあるバレットです。発射と同時に、自分に弾を当てて、発射硬直キャンセルとは。そして自分で作ってみてその威力にビックリ。
ビューグル砲極では、一発で2500。大抵のアラガミはダメージ蓄積で転倒します。
NPCも同時に吹っ飛ばしますが、まあ仕方がない。



アバター(NPC)に持たせる場合には、


  • 硬直キャンセル周りを削って、普通に放射相殺にしたほうがいいらしい。後期で、台場カノンたんが撃ってるアレですね。
  • トリガーハッピーは持たせちゃいけないらしい。どうも射撃はOPしか見てないようで、しょっちゅう息切れしてます。危ないです。



「Excel仕様書」の代替案を幾つか

Excelを辞めろというのは簡単です。
#と言って辞めるなら世話ありませんが。

代替案を出すのがデキるプログラマってもんでしょう。

とりあえず「仕様書」としての代替を幾つか見繕ってみました。

アウトラインプロセッサ等の利用

中でもNanaTreeはなかなか良いです。ubuntu/wineでもアッサリモッサリ動きます。
http://yourcolor.seesaa.net/article/134778238.html 



ファイルフォーマットnnaは、XML+RTFなので、バージョン管理と非常に相性が良い。
マージできる可能性すらあります。


(wineではうまく動きませんでしたが)「仕様書」としてfix|提出する必要がある場合はrtfエクスポートで済みそうです。

より簡易な用途にはNamiで良いでしょう。
http://www.vector.co.jp/magazine/softnews/030723/n0307232.html



ファイルフォーマットnm2は、幾つか特殊な制御コードが挟まってますが、
ほぼSJISプレインテキストであると言ってよさそうです。gvimで開いて中身が読み取れるぐらいなので。これもバージョン管理と相性が良さそうです。

有名どころではSol4ってのが有るらしいのですが
http://homepage1.nifty.com/knowledge-osmo/
ファイルフォーマット不明

何某かの図が必要な場合。

「○○フロー」を描く場合Dynamic Drawが良さげ。
http://www.dynamicdraw.com/jp/dd/index.html
試してません。

何某かのアルゴリズム表現には、同氏の公開しているThought Tickler
http://www.dynamicdraw.com/jp/hr/index.html
http://www.vector.co.jp/magazine/softnews/060511/n0605111.html
がヤバ素晴しい感じです。
試してません。

2012年3月11日日曜日

MiscとかUtilって付けたら負けだと思ってる

変数名やらモジュール名やらにお悩みなプログラマは多いと思われます。
しかし大抵行き詰まって、misc.cppだのutil.phpだのに捻じ込んでませんか?

順番に行きましょう。

まず和英翻訳は、
googleじゃなくて、weblioを使いましょう。別に他のサイトでも構いませんが、「和英翻訳」じゃダメで、英語辞書が望ましいです。

具体例をあげると、「希少」の意味のレアのスペルを調べようとしたら、Rheaとか出ます。(今試したら違いますね) 誰か「翻訳を改善する」をやったのだろうか。
http://translate.google.co.jp/?hl=ja&tab=wT#ja|en|%E3%83%AC%E3%82%A2%0A
これはアメリカダチョウの事です。
http://ejje.weblio.jp/content/Rhea

 と言うことが翻訳だけじゃ判らないよ。って話です。
google翻訳は、実は英語中級用なのです。 googleがダメだって言ってるんじゃありません。駄目なのは使う方です。

そういう人は、翻訳に入れる「日本語」もワンパターンです。
何かの計算をするメソッドの名前に、get○○とか付けてませんか?

多分これはJava族のgetter/setterが歪んで伝わってるのだと思います。
 get/setと言えば、setで入れたモノが、殆どそのままgetで受け取れることを想像します。

計算してるならそう書くべきです。calculate○○。

単語が長いから嫌だって?
アナタはまずタイピングの練習をするのが先のようですね。

中途半端な省略は、辞めるべきです。

ありがちな手口で、countをcntとする流派がありますが、カウンタが複数あると破綻します。cuntとかcontとか、ギリギリな単語を使い始めます。 これらはもう別単語にカスってるので、勘違いさせる可能性があります。
http://ejje.weblio.jp/content/cont
http://ejje.weblio.jp/content/cunt

と言う感じで繰り返してると、紙面がいくらあっても足りないので、一気にいきましょう。

使用禁止単語 ※どうしても使いたければ、「前」「後」に適切な単語を付加する。
  • ID
  • max, min
  • get, set
  • temp
  • value, key, index
  • init,result
  • array,dict,hash,map
じゃあどうするのか?
  • 何処かから抽出する場合
    • 検索してるならfind, query,
    • 名指しで取り出すならload ※getは辞めた方が良い
  •  入力した通りのものが出てくる場合
    • オブジェクトに閉じた話ならget/put #get/setだと字面が似てるので、タイプミスの可能性が増えます&しても判らない可能性が高いです。
    •  データベースへの保存なら、save/load/store。オブジェクトの「外」を意識して使うべきです。
  • 入力を加工してから出力する場合
    •  計算するならcalculate
    •  評価はevaluate
    •  再構築はrebuild
  • 新規作成 create
  • 数量
    • 個数 number, count
    • 通番 serial, unique
    • 容積 limit, capacity,
    • 長さ length ※1次元的な大きさ
  • 識別子
    • "ID"は定義が緩いので、本来は使わないほうが望ましい
    • 通番ならserial, unique
まあこれらの単語の選択は、小生の「流派」であるとも言えますが、getとかで押し通すよりはマシでしょう。