はてなキーワード: エクスポとは
225インデックスファンドの運用のお手伝いをしていたことがあるけど、ここに書いてあることはだいたい合ってるな。ただ、細かく言うなら、
・数学的な秘伝的というものは225インデックスくらいなら特にない。
・エクスポジャー目的で先物等の組み入れを行うのはファンドの立ち上げ時が主で(一気にファンドの最終形まで銘柄を組み入れると自分で買い上げて高値掴みするので数日掛けて組むが、その期間にインデックスと違う値動きをするとまずいので先物でエクスポジャーを取る)で、100%きっちり余りなく現物株を買えないことでのエクスポジャーの不足は普通はベータの高い銘柄の組み入れでも対処している。先物と現物の評価は毎日の中で時間が違うから、終値がズレるし、出来れば避けたい。
・目標インデックスとのズレの大きな理由は日々の解約や購入での資金流出入への対応コストと信託報酬。
・運用会社によっては親会社の株が買えないといった縛りプレイをしていることがある。同業の株を増やすことで対応しても限界はある。
その疑問の答えは、季節によって空気の密度や酸素の量が変化することはない、ということだ。その根拠を挙げてみる。
疑問に対するお答えになっていますでしょうか。
部署移動があって、すぐに行った東京◯ックサイトのなんちゃらエクスポ。
その後、すぐに別の部署への移動があった。
それかしばらくして、月に2~3回、昼間の仕事中に
「資産運用の~~~」とか「素晴らしい不動産の物件が~~」という営業電話がかかってくるようになりました。
かかってくる番号が、まさにその名刺で使っている番号。
わざわざ、その部署の方が、内線で回してくる。
以前も今も、私は営業でもなんでなく、名刺はほとんど使用しない部署。
たまたま上司に付き合ったそのなんちゃらエクスポでしか、名刺を渡した記憶がない。
ということで、特定できました。
ふざけんな! クソ馬鹿!
部署移動があって、すぐに行った東京◯ックサイトのなんちゃらエクスポ。
その後、すぐに別の部署への移動があった。
それかしばらくして、月に2~3回、昼間の仕事中に
「資産運用の~~~」とか「素晴らしい不動産の物件が~~」という営業電話がかかってくるようになりました。
かかってくる番号が、まさにその名刺で使っている番号。
わざわざ、その部署の方が、内線で回してくる。
残念なことに、以前も今も、私は営業でもなんでなく、名刺はほとんど使用しない部署。
たまたま上司に付き合ったそのなんちゃらエクスポでしか、最近、渡した記憶がない。
ということで、特定できました。
ふざけんな! クソ馬鹿!
現在、彼の運用を取り入れたETFが販売されていることで、特徴が明らかになってきた。
Horizons Universa US Black Swan ETF
がそれだ。このファンド、普通の株インデックスを100%エクスポジャーにしつつ、タレブ流投資を同時に行っている。
そして、このBlack Swan ETFとピュアな株インデックスのETFのリターンを比較することで、タレブ流投資によって
どれだけコストが掛っているかがわかる。年率12%程度といったところである。(その一部は純粋なUniversaへの報酬だろう)
このコストを払うことによって、リーマンショッククラスのことが起きた時に3~4倍程度のリターンを得られるということだ。
(3~4倍という数字は2013年に3%程度のマイナスとなるようなエクスポジャーのファンドがリーマン時に約2倍にしたことから推測)
・・・つまり、ただのプットオプションを買うのと同程度、あるいはそれより劣る程度の運用である。
いつかは当たる大波乱シナリオに賭け続けているだけの実力の必要ない(ただし運が良くないと儲からない)運用。
なるほど確かにタレブ自身「運を実力と勘違い」することなく、普通のものをさぞ凄いものだと勘違いさせることで
売り込むという「まぐれ」のない金の儲け方を実践しているわけだったのだ。
※削除するというのが不誠実に感じたので先に転載しておきます。
━━━━━━
私はこれを書いた者です。
さっきポーションを見たが、本当に唖然とした。
http://anond.hatelabo.jp/20090313171447
まず、これを読んで気分を害された方へ、心からお詫びしたい。使うべきでない言葉を使う等、内容が非常に不快なものであり、かつ余計な誤解を生んでしまいました。申し訳ありませんでした。この文章は近い内に削除します。
よって、あの文章を元に改変したものを作って公開することは、今後絶対に止めて頂きたい。私の望んでいることではありません。既に公開している方は、削除することを強く希望します。
その上で、自分の本当に思っていることを書かせて頂きたい(ただしポーションを好きな方は読まないことをお勧めする)。まず、意図せず発生してしまった誤解に対する説明から始めたい。
俺は、ポーション系回復で構成されているパーティーを否定するものでは全くない。むしろ好きと言っても良い。FFで言えば、白魔術師のいないパーティーは全部好きだし、エリクサーの頑張りには何度も癒されたし、フェニックスの尾を一時期大切にとっておいた位だ(レベルがばれそうだ)。他のパーティーでも、様々な実験的なパーティー編成をよくみたし、一時はすっぴんにまで興味を持っていた程だ。
そして、ポーション系回復を使ってパーティーを作り、ヌルい冒険をすることも、全く悪いことではないと思っている。へたれ初心者の方で、かつ勇気と無謀を勘違いしている人が冒険するのには最適な場所だろう。(自分のことを棚に上げて言えば)ぬるすぎてつまらんと思わない奴がちょっと多いのが残念だが。
では俺が何を問題にしているかと言うと、HP回復そのもの以外の部分でポーションを売ろうとしている(と俺が感じた)こと、そして実際に売れてしまっていることだ。ここを詳しく説明したい。
まず、自分の根本的な考え方として、アイテムは、回復量のみで評価されて売れるべきものだと思っている。つまり、エリクサー、ラストエリサー、ファイナルエリクサーなどだ。そしてその楽曲を良くしよう、歌唱力を高めようとして毎日頑張っているアーティストは言うまでもなく沢山存在する。
それなのに最近は何か変なブームが多い。ポーションとか、ハイポーションとか、エクスポーションとか、そんなのばかりが注目される。まさか回復量で売れたとは考えられない。正直腹が立っていた。
そこでさらにポーションが発売され、店頭で購入している人を見た。率直に言って驚いた。
ネットでの評判を見ると、ポーションが良いから買っているという人もいたが、そんなにポーションが良いなら、危険な冒険を行えば、もっと良い回復アイテムに仕上がるはずだ。あのポーションが戦闘で役立つとは、申し訳ないが俺にはどうしても思えない。
そしてアマチュアならともかく、ポーションを購入している時点で、エリクサー系回復薬の魅力が分からないという状況は、俺には想像できない。
つまり回復量自体で勝負しようとしているわけではなく、その単なる珍しさや青色性、そして現在のブームの為にポーションは売れている、俺はそう考えた。上にも書いたが、これは俺の考えでは、回復薬の売れ方として、言葉は悪いが卑怯である。さらに腹が立っていた。
そして、amazonのランキングを見てしまった。これがあの文章を書いた理由だ。
そのような売れ方をしてしまうと何が問題か。結論から言えば、質の高い回復薬が減ってしまうことだ。理由はいくつかある。
理由の1つ目は、消費者が他の回復薬がなくなってしまうこと、またエリクサー計回復薬を失ってしまうことだ。人がFFに使えるお金には限度がある。ポーションを買えば、もしかしてポーションより好きになるようなエリクサーが近くにあったかもしれないのに、それには目もくれず帰ってしまうことになる。そして、エリクサーがぬすめる強敵のところに誰もいなかければ、とげとげしい雰囲気がなくなって、少なくとも冒険をぬるくせざるを得ない。1日中エリクサーのことを考えるのと、会社から帰宅した後のみでは、どうしたって音楽の質に差が出てしまう。
2つ目は、エリクサーだけで勝負しようとしているアーティストのモチベーションが下がることだ。つまり、いくらエリクサーの質を上げても、ポーション系や白魔法ばかりが注目されるなら、自分達のエリクサー集めが無駄だと思ってしまっても仕方がないだろう。人のモチベーションはそう簡単にはコントロールできるものではない。
俺はエリクサー系でFFを埋めつくしたい。昔から俺を感動させてくれたのはラストエリクサーだし、今後もそういうラストエリクサーを聴き続けたいと思っている。回復量の少ないポーションではなく、そのエリクサーか24時間パーティー回復のことだけを考え、試行錯誤し、長い時間をかけてやっと作り上げた、己の全存在をかけたようなファイナルエリクサーだ。回復薬から受ける心底からの感動は、そのような努力からしか得られない、と俺は考える。
だが、今のような状況では、そんなことが可能な冒険者がどんどん減っている。俺にはこのことが本当に悲しい。
だから、これを読んでくれている皆さんにお願いしたい。会社帰りでもいいし、休日街に遊びに行った帰りでもいい。大型の冒険に寄って、普段行かないようなエリクサーを盗めるボスと戦ってみて欲しい。そしてそのエリクサーに回復を感じたら、是非エリクサー集めして欲しい。本当に、皆さん一人一人に、心からお願いしたい。そういった草の根のような行動の積み重なりが、今のFF業界における流れを変えることは、不可能ではないと俺は信じている。
あの文章を書いている時は、精神状態が普通ではなく、書いている内にどんどん腹が立ってしまい、煽ってやろうという気持ちが生まれてしまったことは否定できません。ただ、最初から釣りの目的で書いたのではないことだけは分かって頂きたいです。
俺の好きな回復薬を挙げろというコメントもあった。ただ、俺の考え過ぎかもしれないが、その回復薬に、たった一人でも変な使い方をする人がいると、本当に申し訳が立たない。そこでそのような影響が比較的出にくそうな、海外のアーティストを挙げたい。
前の方に、俺は勇気ある冒険者だ、と書いた。以前結構気に入っていたのが、ラストエリクサーというアイテムだ。
ある人はいいと思うだろうし、別の人は良くないと思うだろう。それでいいと思う。大事なのは、マスコミや一時的なブームなどに影響されず、自分が自信を持って良いと思えるエリクサーを、自分から探して見つけることだと思う。
そろそろ長くなったのでこの辺で。皆さんが本当に好きになれるエリクサーを一つでも多く発見し、そのエリクサーを楽しみ、エリクサーだけを通じて皆さんの人生が少しでも豊かになることを、心から祈っています。
http://anond.hatelabo.jp/20090313171447
以下は私、転載者がなんの手も加えていない、元増田オリジナルのコピー&ペーストである。
━━━━━━
さっきポーションを見たが、本当に唖然とした。
俺は断言するが、あのドクドクしい青色一号丸出しのポーションを見て感動してHP回復する奴は馬鹿だ。これは100%断言できる。
何であれがいいと思うの? なんでポーションとか買うの? 本当に分からない。あれ超劣化ラストエリクサーまんまじゃん。HP回復量足りないよ? 誰だってwikipediaのポーションの項目見れば"青色一号が使われている"って言うのは一瞬で分かる。それで「ポーションうめぇwww」って本気で馬鹿なんじゃない?
あれがいいっていうのは、頭がおかしいとしか言いようがない、というか、脳が退化してるんだよ。それしか説明がつかない。つまり、ドクドクしく青色に染められたの砂糖水に丁寧に壜詰され、青色一号にその身を溶かすポーションと、ラストエリクサーとの区別がつかなくなってるんだよ。だからいいと思って買う。これは馬鹿としか言い様がないだろう。日本の将来は大丈夫か?
前にもちょっとハイポーションが出た時、ショップ(こんなとこ行きたくもなかったが)で見たが、なんであんな人気あるんだろう。あとついでにエクスポーションも見た。これならまあ100歩譲って納得できなくもないが、ただ当然ラストエリクサー様とは比べるのも失礼な程だし、無料ならまあ一回手にとってもいいかな、という程度だ。何回どころか一度として買うほどではない。ただレベルの低い奴らは絶賛の嵐。アホか。本物を知らないたまねぎ剣士ばっかなのかあそこは。ろくなもんじゃないな。
俺ははっきり言うが、もっと強敵と戦ってラストエリクサーをぬすむべきなんだよ。じゃないとおかしい。ハイレベルの連中が毎日どれだけ苦労してるか知ってるか? きりがないレベルあげ、だんだんボット化する作業、システムエラーでアクセスできない、鯖落ち、書けばきりがない。大好きなドラクエも我慢して頑張ってるレベルあげしてる人もたくさんいるし、レベルの低い奴みたく安定した冒険じゃないから毎日不安と戦ってる。そういう方が心を込めて使っているラストエリクサーを狙わずに、ポーションを買って飲む。ほんと死にたくなるね。どうしてあのHPの回復量の少なさでハイレベルな戦いのデメリットでしかないを青色一号むき出しポーションを飲むかね。わからない。世の中不思議だらけだ。
本当におまえら頭冷やして考え直せよ。おまえらは馬鹿か、またはスクウェアエニックスに乗せられてるだけだ。まあそれをFF厨と言うんだがな。
さっきポーションを見たが、本当に唖然とした。
http://anond.hatelabo.jp/20090313171447
まず、これを読んで気分を害された方へ、心からお詫びしたい。使うべきでない言葉を使う等、内容が非常に不快なものであり、かつ余計な誤解を生んでしまいました。申し訳ありませんでした。この文章は近い内に削除します。
よって、あの文章を元に改変したものを作って公開することは、今後絶対に止めて頂きたい。私の望んでいることではありません。既に公開している方は、削除することを強く希望します。
その上で、自分の本当に思っていることを書かせて頂きたい(ただしポーションを好きな方は読まないことをお勧めする)。まず、意図せず発生してしまった誤解に対する説明から始めたい。
俺は、ポーション系回復で構成されているパーティーを否定するものでは全くない。むしろ好きと言っても良い。FFで言えば、白魔術師のいないパーティーは全部好きだし、エリクサーの頑張りには何度も癒されたし、フェニックスの尾を一時期大切にとっておいた位だ(レベルがばれそうだ)。他のパーティーでも、様々な実験的なパーティー編成をよくみたし、一時はすっぴんにまで興味を持っていた程だ。
そして、ポーション系回復を使ってパーティーを作り、ヌルい冒険をすることも、全く悪いことではないと思っている。へたれ初心者の方で、かつ勇気と無謀を勘違いしている人が冒険するのには最適な場所だろう。(自分のことを棚に上げて言えば)ぬるすぎてつまらんと思わない奴がちょっと多いのが残念だが。
では俺が何を問題にしているかと言うと、HP回復そのもの以外の部分でポーションを売ろうとしている(と俺が感じた)こと、そして実際に売れてしまっていることだ。ここを詳しく説明したい。
まず、自分の根本的な考え方として、アイテムは、回復量のみで評価されて売れるべきものだと思っている。つまり、エリクサー、ラストエリサー、ファイナルエリクサーなどだ。そしてそのエリクサーを良くしよう、エリクサー集めをして毎日頑張っているハイレベル冒険者は言うまでもなく沢山存在する。
それなのに最近は何か変なブームが多い。ポーションとか、ハイポーションとか、エクスポーションとか、そんなのばかりが注目される。まさか回復量で売れたとは考えられない。正直腹が立っていた。
そこでさらにポーションが発売され、店頭で購入している人を見た。率直に言って驚いた。
ネットでの評判を見ると、ポーションが良いから買っているという人もいたが、そんなにポーションが良いなら、危険な冒険を行えば、もっと良い回復アイテムに仕上がるはずだ。あのポーションが戦闘で役立つとは、申し訳ないが俺にはどうしても思えない。
そしてアマチュアならともかく、ポーションを購入している時点で、エリクサー系回復薬の魅力が分からないという状況は、俺には想像できない。
つまり回復量自体で勝負しようとしているわけではなく、その単なる珍しさや青色性、そして現在のブームの為にポーションは売れている、俺はそう考えた。上にも書いたが、これは俺の考えでは、回復薬の売れ方として、言葉は悪いが卑怯である。さらに腹が立っていた。
そして、amazonのランキングを見てしまった。これがあの文章を書いた理由だ。
そのような売れ方をしてしまうと何が問題か。結論から言えば、質の高い回復薬が減ってしまうことだ。理由はいくつかある。
理由の1つ目は、消費者が他の回復薬がなくなってしまうこと、またエリクサー計回復薬を失ってしまうことだ。人がFFに使えるお金には限度がある。ポーションを買えば、もしかしてポーションより好きになるようなエリクサーが近くにあったかもしれないのに、それには目もくれず帰ってしまうことになる。そして、エリクサーがぬすめる強敵のところに誰もいなかければ、とげとげしい雰囲気がなくなって、少なくとも冒険をぬるくせざるを得ない。1日中エリクサーのことを考えるのと、会社から帰宅した後のみでは、どうしたって音楽の質に差が出てしまう。
2つ目は、エリクサーだけで勝負しようとしているアーティストのモチベーションが下がることだ。つまり、いくらエリクサーの質を上げても、ポーション系や白魔法ばかりが注目されるなら、自分達のエリクサー集めが無駄だと思ってしまっても仕方がないだろう。人のモチベーションはそう簡単にはコントロールできるものではない。
俺はエリクサー系でFFを埋めつくしたい。昔から俺を感動させてくれたのはラストエリクサーだし、今後もそういうラストエリクサーを聴き続けたいと思っている。回復量の少ないポーションではなく、そのエリクサーか24時間パーティー回復のことだけを考え、試行錯誤し、長い時間をかけてやっと作り上げた、己の全存在をかけたようなファイナルエリクサーだ。回復薬から受ける心底からの感動は、そのような努力からしか得られない、と俺は考える。
だが、今のような状況では、そんなことが可能な冒険者がどんどん減っている。俺にはこのことが本当に悲しい。
だから、これを読んでくれている皆さんにお願いしたい。会社帰りでもいいし、休日街に遊びに行った帰りでもいい。大型の冒険に寄って、普段行かないようなエリクサーを盗めるボスと戦ってみて欲しい。そしてそのエリクサーに回復を感じたら、是非エリクサー集めして欲しい。本当に、皆さん一人一人に、心からお願いしたい。そういった草の根のような行動の積み重なりが、今のFF業界における流れを変えることは、不可能ではないと俺は信じている。
あの文章を書いている時は、精神状態が普通ではなく、書いている内にどんどん腹が立ってしまい、煽ってやろうという気持ちが生まれてしまったことは否定できません。ただ、最初から釣りの目的で書いたのではないことだけは分かって頂きたいです。
俺の好きな回復薬を挙げろというコメントもあった。ただ、俺の考え過ぎかもしれないが、その回復薬に、たった一人でも変な使い方をする人がいると、本当に申し訳が立たない。そこでそのような影響が比較的出にくそうな、海外のアーティストを挙げたい。
前の方に、俺は勇気ある冒険者だ、と書いた。以前結構気に入っていたのが、ラストエリクサーというアイテムだ。
ある人はいいと思うだろうし、別の人は良くないと思うだろう。それでいいと思う。大事なのは、マスコミや一時的なブームなどに影響されず、自分が自信を持って良いと思えるエリクサーを、自分から探して見つけることだと思う。
そろそろ長くなったのでこの辺で。皆さんが本当に好きになれるエリクサーを一つでも多く発見し、そのエリクサーを楽しみ、エリクサーだけを通じて皆さんの人生が少しでも豊かになることを、心から祈っています。
俺は断言するが、あのドクドクしい青色一号丸出しのポーションを見て感動してHP回復する奴は馬鹿だ。これは100%断言できる。
何であれがいいと思うの? なんでポーションとか買うの? 本当に分からない。あれ超劣化ラストエリクサーまんまじゃん。HP回復量足りないよ? 誰だってwikipediaのポーションの項目見れば"青色一号が使われている"って言うのは一瞬で分かる。それで「ポーションうめぇwww」って本気で馬鹿なんじゃない?
あれがいいっていうのは、頭がおかしいとしか言いようがない、というか、脳が退化してるんだよ。それしか説明がつかない。つまり、ドクドクしく青色に染められたの砂糖水に丁寧に壜詰され、青色一号にその身を溶かすポーションと、ラストエリクサーとの区別がつかなくなってるんだよ。だからいいと思って買う。これは馬鹿としか言い様がないだろう。日本の将来は大丈夫か?
前にもちょっとハイポーションが出た時、ショップ(こんなとこ行きたくもなかったが)で見たが、なんであんな人気あるんだろう。あとついでにエクスポーションも見た。これならまあ100歩譲って納得できなくもないが、ただ当然ラストエリクサー様とは比べるのも失礼な程だし、無料ならまあ一回手にとってもいいかな、という程度だ。何回どころか一度として買うほどではない。ただレベルの低い奴らは絶賛の嵐。アホか。本物を知らないたまねぎ剣士ばっかなのかあそこは。ろくなもんじゃないな。
俺ははっきり言うが、もっと強敵と戦ってラストエリクサーをぬすむべきなんだよ。じゃないとおかしい。ハイレベルの連中が毎日どれだけ苦労してるか知ってるか? きりがないレベルあげ、だんだんボット化する作業、システムエラーでアクセスできない、鯖落ち、書けばきりがない。大好きなドラクエも我慢して頑張ってるレベルあげしてる人もたくさんいるし、レベルの低い奴みたく安定した冒険じゃないから毎日不安と戦ってる。そういう方が心を込めて使っているラストエリクサーを狙わずに、ポーションを買って飲む。ほんと死にたくなるね。どうしてあのHPの回復量の少なさでハイレベルな戦いのデメリットでしかないを青色一号むき出しポーションを飲むかね。わからない。世の中不思議だらけだ。
本当におまえら頭冷やして考え直せよ。おまえらは馬鹿か、またはスクウェアエニックスに乗せられてるだけだ。まあそれをFF厨と言うんだがな。
訳してみた。あらためて、和訳はものすごく時間を要する作業だということがわかった。もうしないと思う。
注意:以下は意訳、適当訳、稚拙訳であり、誤訳を多々含んでいることは確実であり、Joel氏が本当に以下のように述べているとは限りません。
なぜMicrosoft Officeファイルフォーマットはこんなにもややこしいのか (そしてその対処法を幾つか)
Tuesday, February 19, 2008
先週、MicrosoftはOfficeのバイナリフォーマットを公開したが、このフォーマットは殆ど正気でないように見える。Excel 97-2003ファイルフォーマットは349ページのPDFファイルだ。でも待って、それで全部じゃない。このドキュメントには次の面白いコメントが書いてある。
それぞれのExcelワークブックは1つのcompound fileに収められている
つまり、Excel 97-2003ファイルはOLE coumpound documentで、それは結局、1つのファイル内にあるファイルシステムである。これは、理解するのにあと9ページはスペックを読まなくちゃならないぐらいには十分に複雑だ。そしてこれらの「スペック」は、普通我々が考えるようなスペックというよりは、Cデータ構造みたいに見える。これ全体が階層的ファイルシステムなのだ。
もしあなたが週末を、Wordドキュメントをブログにインポートしたり、あなたの個人的な財務データからExcelフォーマットのスプレッドシートを生成するような気の利いたコードを書くのに使おうと思ってこれらのドキュメントを読み始めたなら、このスペックのややこしさと長さがそんな気をあっという間に失せさせるだろう。普通のプログラマはこのOfficeバイナリファイルフォーマットについて次のような結論を下す:
この4つ全てについて、きみは間違っている。ちょっとだけ掘り下げて、これらのファイルフォーマットがどうしてこんなに信じがたいくらいに複雑なのか、なぜMicrosoftの悪いプログラミングを反映しているのではないのか、そしてそれを回避するためにあなたに何ができるか、を明らかにしよう。
理解すべき最初のことは、これらのバイナリファイルフォーマットはちょっと違ったデザインゴールを持って設計されたということだ。たとえばHTMLとは。
これらはすごく古いコンピュータで速く処理できるようにデザインされた。Excel for Windowsの初期のバージョンでは、1MBのRAM、20MHz動作の80386が Excelを快適に走らせることができるための妥当なものだった。このファイルフォーマット内には、ファイルを素早く開いたり閉じたりするための最適化が沢山仕込まれている:
これはライブラリを使うことを想定して設計されている。もしあなたがバイナリをインポートするものを1から書き上げたいと思ったら、Windows Metafile Format (何か図を描く場合) や OLE Counpound Storage みたいなものをサポートしなくてはいけなくなる。もしあなたが Windows上でやるのなら、そうしたことをたいしたことのない作業にするためのライブラリのサポートが存在する... そういったフィーチャーを使うことは(元々)マイクロソフトチームのためのショートカットだった。でもあなたが全部を自分でスクラッチから書くなら、全部の作業を自分自身でやらなくてはいけない。
オフィスはcompound documentsに対して広範囲のサポートを持っている。例えば、スプレッドシートをWord文書に埋め込んだりできる。完璧なWordファイルフォーマットのparserは、同じように、埋め込まれたスプレッドシートで何かインテリジェントなことが出来るべきだろう。
それは相互協調性(interoperability)を意識してデザインされてはいない。仮定されていたのは、WordファイルフォーマットはWordからのみ読み書きされなくてはいけない、ということで、それは当時においては十分に合理的なものだった。これは、Wordチームのプログラマがファイルフォーマットをどう変更するかについて決定を行う場合にはいつでも、彼らが気にするのは (a)何が高速か (b)Wordのコードベースにおいて最小の行数になるのは何か、だったことを意味する。SGMLやHTML-interchangeableといった標準ファイルフォーマットのようなアイデアは、最初にインターネットがドキュメントの相互交換を実現するまで現実のものにはならなかった。それはOfficeバイナリフォーマットが最初に考案されてから10年後のことだったのだ。ドキュメントを交換するのにインポーターとエクスポーターを使うことができるという仮定が常にあった。実際Wordは簡便な交換のために設計されたRTFと呼ばれるフォーマットを持っており、そのフォーマットは殆ど最初のころからあり、今も100%サポートされている。
それはアプリケーションの全ての複雑さを反映していなくてはいけない。 全部のチェックボックス、全部のフォーマッティングオプション、そして全部の、Microsoft Officeのフィーチャーは、ファイルフォーマットのどこかで叙述されていなくてはいけない。Wordのパラグラフメニューにある、"Keep With Next" と呼ばれるチェックボックス、これはパラグラフを、その後ろのパラグラフと同じページに置くのに必要な場合は、次のページに移動させるもの(?)だが、これもファイルフォーマットの中に無くてはいけない。そしてこれはつまり、あなたがWordドキュメントを正しく読み込める完璧なWordクローンを実装したいなら、そういったフィーチャーを実装しなくてはいけないということだ。Wordドキュメントをロードする競争力のあるワードプロセッサを作っているのなら、ファイルフォーマットからそのビットをロードするコードを書くのには1分しかかからないかもしれないが、ページのレイアウトアルゴリズムをそれに対応させるのに何週間もかかるかもしれない。もしあなたがそうしない場合、カスタマーがあなたのクローンでWordファイルを読み込んだら、全部のページがぐちゃぐちゃになってしまうだろう。
それはアプリケーションの歴史を反映していなくてはいけない。 このファイルフォーマットに見られる多くの複雑さは、古く、複雑で、愛されず、めったに使われないフィーチャーを反映している。それらはファイルフォーマットのなかに後方互換性のためにまだあり、そしてMicrosoftにとってその辺りのコードを残しておくことには何らコストはかからない。しかしあなたがこれらのファイルフォーマットをparseおよびwriteする一貫した完全な仕事をしたいと思うなら、Microsoftのインターンが15年前にやったのと同じことを全て、またやらなくてはいけない。要点は、何千人年の仕事が今のWordやExcelには費やされてきたのであり、これらのアプリケーションの完璧なクローンを作りたいと本当に欲するなら、あなたは何千人年を費やさなくてはならないことになる、ということだ。ファイルフォーマットは単に、アプリケーションがサポートする全てのフィーチャーの簡潔なサマリーなのだ。
手始めに、小さな例を一つ、深く見てみよう。Excelのワークシートは色々なタイプのBIFFレコードの集まったものだ。私はスペックの一番最初のBIFFを見てみたい。1904と呼ばれるレコードだ。
Excelファイルフォーマット仕様のこのレコードについての記述は非常に曖昧なものだ。そこでは単に、1904レコードが「1904日付システムが使われているかどうか」を示すレコードだ、と述べているだけだ。ああ、使えない仕様書の典型的な一例だ。あなたがExcelファイルフォーマットで何かしている開発者で、そしてファイルフォーマット仕様にこう書いてあるのを見つけたなら、あなたがMiocrosoftは何かを隠しているのだと結論付けたとしても無理はない。この情報の断片は十分な情報をあなたに与えはしない。あなたには幾ばくか外部の情報が必要で、私は今ここで、それを提供しよう。Excelワークシートには、2種類ある。日付のエポックが1900/1/1のもの(これには、Lotus 1-2-3 との互換性のために故意に入れられた閏年に関するバグがあるが、ここでそれについて述べるのは退屈すぎる)、および、1904/1/1のものだ。Excelは両方をサポートしているが、それはExcelの最初のバージョンはMac版であり、それは単に簡単だったという理由でOSのエポックを使っていて、しかしWindows版のExcelは1-2-3のファイルをインポートできなくてはならず、そしてそれは1900/1/1をエポックとして採用していたからだ。あなたが涙ぐむのも無理はない。歴史のどの時点においても、プログラマが正しいことをしなかった、という時はないのだが、しかし現実にあなたが手にしているものはこれなのだ。
1900と1904のファイルタイプは両方とも世の中には広く存在しており、それは通常、ファイルがWindowsとMacのどちらで作られたかによる。一方のタイプから他方のタイプへ黙って変換するのはIntegrity的に問題があるので、Excelはファイルタイプを変換することをしない。Excelファイルをparseするためには、あなたは両方を扱わなくてはならない。それはファイルからこのbitをロードするだけの問題ではなく、あなたが日付表示と両方のエポックを扱うparsingのコードまで書き直さなくてはいけないということを意味する。実装には何日かかかるだろうと私は思う。
実際、あなたがExcelクローンの作業をするなら、日付の扱いについて、あらゆる種類の微妙なディティールを発見することになるだろう。Excelは日付の値をいつ変換するのか? 表示の整形はどうやっているのか? なぜ1/31は今年の January 31と翻訳され、また一方で1/50はJanuary 1st, 1950と翻訳されるのか? Excelのソースコードと同じだけの量のドキュメントを書かないがぎり、振る舞いに関しての微妙なビットを全て完全に記述することはできない。
そしてこのレコードは、あなたが扱う何百もあるBIFFレコードの最初の1つに過ぎず、しかももっとも単純なものなのだ。他のレコードの殆どは、より多くのプログラマーを涙に暮れさせるぐらいには十分複雑だ。
唯一導き得る結論はこれだ。
MicrosoftがMicrosoftとOfficeのファイルフォーマットをリリースしたことは大変有用なことだが、しかしそれでOfficeファイルフォーマットをインポートしたり保存したりするのが楽になるということは全く無さそうだ。それらは狂気じみて複雑で、リッチなアプリケーションで、そしてあなたは人気のある20%の部分を実装して80%の人々を幸せにするというくらいのことしかできない。バイナリファイル仕様によってなされるのは、多く見積もっても、著しく複雑なシステムのリバースエンジニアリングにかかる時間を何分か削減するくらいだろう。
オーケー, 私はいくつか回避法を教えると約束した。良いニュースは、殆どの良く知られたアプリケーションにとって、Officeバイナリファイルフォーマットを読み書きしようと試みることは誤った決定だということだ。あなたが真剣に考えなくてはいけない代案が2つある。Officeそのものにそれをやらせるか、書き込むのが簡単なファイルフォーマットを使うかだ。
ヘビーな仕事はOfficeにやらせよう。WordとExcelは実に完全なオブジェクトモデルを持っており、COMオートメーションの手段が可能で、これであなたは何でもプログラムでやるようにできる。多くのシチュエーションでは、Office内のコードを再利用するほうがそれを実装しようとするよりも良い。ここにいくつか例がある。
この手のアプローチは、全ての種類の一般的なOfficeタイプについての、サーバ上であなたがやりたいと思うであろうアプリケーションで、うまくいくだろう。例えば:
これらのケースの全てにおいて、Officeオブジェクトにインタラクティブ動作でないことを教えてやる方法があり、だから表示をアップデートするのに煩わされたり、ユーザに入力を促す必要はない。ところで、このようなやりかたでいく場合には、gotchas(?)がいくつかあり、そしてそれはMicrosoftは公式にサポートしているものではない。だからあなたがそれを始める前にはKnowledge baseの記事を読むように。
書き込むファイルにはもっとシンプルなフォーマットを使いなさい。単にOfficeドキュメントをプログラムで生成したいなら、殆どいつでもOfficeバイナリフォーマットよりももっと良いフォーマット、WordやExcelでも問題なく開くことができるようなフォーマットが存在する。
いずれにせよ、全てのOfficeファイルを完全に読み書きできるような、文字通りのOffice競合製品を作ろうとする(その場合には、何千年もの作業があなたに予約される) のでない限り、Officeバイナリフォーマットの読み書きをするというのは、何であれあなたが解決しようとしている問題を解決するためのもっとも労働集約的な方法だ。