はてなキーワード: windows meとは
https://anond.hatelabo.jp/20210924183546
の続き。核融合についてこんなに見てくれる人が出るとは思わなかったのでびっくり。おじさん続き(というか、前回の記事でまるっとスルーした部分についての補足)を書いちゃうよ。もうバレてると思うけど、増田は核融合ベンチャーに頑張ってほしいと思ってる(利害関係はない)タイプの業界人だよ。業界の中にも否定的な人は普通にいるよ。
核融合で発電するには、「十分高い温度と密度の高純度なプラズマ」が必要。それが十分な性能になったら、あとは発電設備を付ければ発電できるようになる(それも簡単ではないけど)。
プラズマの性能は温度・密度・閉じ込めの3つを同時に達成しないといけないので、本当は核融合三重積という指標を使う。そうじゃないと「温度は高いけどスカスカで核融合反応をほとんどしないプラズマ」とかがすごいっぽく見えてしまう。でもここでは長くなるので割愛。というのも、幸いにしてすでに核融合反応を起こした装置は2つあって「実際核融合で何Wを何秒出した」と言えるのでそこで判断してもらって大きな問題はないから。
TFTRは装置名。世界初の大型装置での核融合燃料を使った本格的な核融合反応。(ここまでは取り扱いの面倒な三重水素は使われてなかった。)核融合出力1000 kWをプラズマ的には十分長い0.2秒くらい維持した。
現在までの最高出力記録。このとき、2400kWくらいのエネルギーを投入して1600kW出したので、投入エネルギーの0.6倍は出せた計算。ただし、投入エネルギー=投入電力ではないので注意。電力ベースでは(記録はないけど)おそらく0.1を割るだろうと思われる。
ギネス認定の人工での世界最高温度記録である5.2億度を達成した。また、1億度のプラズマを9秒フラットに維持したりもしている。日本は放射線管理のあれこれで核融合燃料を使えなかったため、核融合出力はない。しかし、この5.2億度のプラズマでの温度や密度から、核融合燃料を使っていれば投入エネルギーを超える核融合出力が得られたと推定されている。(JETの0.6を超えて1.2くらい達成したはずという意味)
この3つを見てわかるとおり、核融合の記録は90年代ばかり、2000年代以降は更新されていない。iphone13の時代にwindows meすらない時代の記録が最高記録扱いなのである。研究者がベンチャーなんてやりたくなるほどのフラストレーションを感じている理由もちょっとはわかってもらえるだろう。
そこらへんの火力や原子力の発電所では、電気出力が数十万 kWから百万 kWくらいなので、発電効率を考えて核融合出力で100万kWくらい出せれば核融合発電所第一号としては十分だとすると、JETの記録を600倍は増やさないといけない。600倍とかヤバくね?と思うかもたけど、iterは50万kWの核融合出力を400秒続けられるように設計されている(それは見通せてる)ので、iterの二倍で良いわけである。本当なら今頃はiterの成果を見ながら「iterの2倍程度の出力をもっと長く継続する」「発電設備をつける」にトピックが移ってたはずなんだけど、遅れてるのが現状。元々90年代の成果と知見を元に次の装置を設計して建設するため、10年程度の空白期間が出来てしまうことはしょうがないのだけど、2010頃には動いていたはずのiterが遅れたために空白期間かここまで伸びてしまっている。iterが複数企業どころか複数国(EU+六カ国)が機器を持ち寄るというみずほ銀行勘定システム以上のゲキヤバ案件でなければ今頃...iterが大失敗して、核融合業界全体が死んでた可能性もあるんだけどね。
iterの基本設計が古くて保守的だから。97年にベース設計が決まって、2007に更新されたのがiter。炉形式も実績はあるが思想の古い保守的なトカマク(上述の3つはこれ)。しかも「失敗は許されない!」と90年代に確実だった(枯れた)技術ばかりが使われている。典型的には超伝導線材(コイル)で、iterは日本のLHDで採用された実績のあるニオブとチタンの合金の超電導線材すら「日本しか供給できないので供給力が不安」という理由で不採用にして、性能が低いニオブとスズの合金の線材を採用しているくらいに保守的なのである。
そういうiterなので、研究者が「リスクを犯してでも最先端の技術や炉形式を使えば、もっと安く、もっと良いものができる!」と考えるのは当然の帰結。そんなわけなので、2000年代にようやく工業レベルの供給ができるようになってきた高温超伝導導体はベンチャーの提案ではスタンダードである。
ここからはより私見が強くなるけど、「2030年代に既存の原発や火発なみに発電する核融合発電所ができるか?」なら答えはNo。そもそも、建設に10年程度かかるものなので、2030年代までに動くのは次の世代の炉だけ。でも、ガチ発電所の前に一世代「お試し発電はするけど、ガチ発電所ほどじゃない」やつが要る。二世代作るのはどう頑張っても間に合わないし、次のやつのデータを見ながら規制法律の整備とかもするからそういう意味でも間に合わない。多分、用地設定とかも含めると、すでに提案済みの新型原発(核分裂炉)でも20年たらずで発電開始は無理じゃないかな?
でも、「2030年代にちょっとでも良いから核融合で消費電力を超える発電をする」なら10 %くらいいける確率はあると思う。首相が青森の六ケ所(iterの候補に立候補してた)あたりを特区指定して、原子力規制庁が規制法を爆速で整備して、現存の設計案(ベンチャーの案でも、量研機構が準備してる次世代核融合炉設計案でも良い)の最小限版を速攻で建設開始するシナリオ。当然その時はみずほ勘定システム方式ではなく、日立なり東芝なりの一社に全体を統括してもらう。そこまでお膳立てされれば遅れない。多分遅れないと思う。遅れないんじゃないかな。ま ちょっと覚悟はしておけ。
前記事書いてたときに存在を忘れてた。ロッキード・マーチンのチームはアカデミアとつながっていないので、他の核融合ベンチャーが論文などを出してる一方で情報が一般向けのニュースくらいしかない。でもまぁ、振動磁場で粒子を閉じ込めるというアイデアもちょっと無理がある(そんな早い振動磁場を高強度で作れない)と思うし、車に乗るとかどう考えても無理があることも書いてたのでなぁ(加熱装置も発電装置も電源も車に載るほど軽くない)。核融合ベンチャーは大なり小なり希望的なことを言うものだけど、それと比較しても無理っぽいんじゃないですかね。すでに内部で解散してても驚かないです。
零細企業なら余裕でやってますよね。前いた職場ではWindows MeのPC使った基板加工制御とかあったなぁ・・・今でもやってるんだろうか
Windows 95 Alt+漢字。秀Capsなどサードパーティのユーティリティを使うことで漢字だけでオンオフできるようにしていた。
Windows NT 3.51 ?
Windows 98 Alt+漢字がデフォルト。MS-IME 98の設定を変えれば漢字キーのみのオンオフが可能だったらしい。
Windows NT 4.0 Alt+漢字がデフォルト。Windows 98と似たような感じだった気がする。
Windows 2000 ? 怪しい
Windows Me ? 怪しい
Windows XP 気付いたら漢字キー単体でオンオフがデフォルト動作になっていた。
分からない
Windows Millennium Edition、通称Windows Me。
ミレニアムだし頑張るぞいと作られたはいいけど色々残念な子でXPに完全に食われた可哀想なやつなんだよ。
Windows 9x系とNT系の統合という路線を目指した結果、もうNT系だけでよくねと市場に印象づける事になったそれはそれは凄い奴だった。
コイツの凄い所は95→98→XPっていう「家庭用PCとしてのWINDOWS」の順調なアップデート史の間に完全な不純物として差し込まれている点。
開発からすればミレニアムを記念しての統合的デザインというロマンがあるんだろうけどユーザーからしたら知ったこっちゃねえわという部分がiPhoneXにそっくり。
およそ20年前にゲイツのしもべが通った道を、今度はジョブズのしもべが通るわけだ。
いや通るんじゃねえよ引き返せよ。
ぜってー失敗する。
確信を持って言える。
拗らせたオタクは「だが待って欲しい、むしろXPに近いのがXであり、Meに近いのが8ではないだろうか?」みたいな意味不明な事言って逆張りしてくるかも知れないから気をつけろよ。
まあ、俺の予想だと、Xと8が出て数年したらもっとMeじみた奴が出て来てアップル終わったなアトモスフィアで地球が覆われる。
風邪を引いた。
いつもは風邪を引くと寝るかほぼ流動体な食事を摂るかくらいしか選択肢がないんだけど、ずっと家にいると如何せん暇だと感じる。なので今日はPCゲームの友人数人とスカイプ的なボイスチャットで通話している。
今は世間的には”微熱”と言われるような体温だけど、幸か不幸か人より敏感だと思われる俺の身体はwindows meくらいの処理速度にまで落ちているから通話といっても基本的に聞き手に廻っている。一人はうつ病真っ只中だったりで俗っぽい言い方かもしれないけど皆各々の事情を抱えて生きているんだなあ、と思う。
生きることは「違和感をなくすこと」だ。
飯を食うことも「空腹という違和感」を解消することだし、外国語を勉強するのも「言葉が通じない違和感」を消すことだし、極限的なことを言ってしまえば、歩くことは他の足を交互に動かすこと以外の移動手段に違和感があるからなのじゃないかとも思う。
水飲んで寝れば大抵治る風邪なんて身体が病原菌に対する違和感を解消するための反射ともいえるんだろうけど、うつ病とかの精神疾患に明確な原因はあるのかな。”脳のイレギュラー”とか”様々な事象が原因となる”とか言われるだろうが専門外なのでわからないし、原因なんてわかったところでどうしようもない。「人間は必ず分かり合える」とかいう意見に断固反対だ。他人の気持ちなんて予測するか蓄積された自分の経験に照合させて最適解を探すくらいしか手段はないでしょ。わかるんなら風邪引いてる俺の気持ち(しんどい)を記述してほしいし何なら風邪自体をもらってくれ。ガンダムなら完全にシャア側。品川区にコロニー落とすぞ。
脱線したけど、総て「違和感を解消するために今何をすべきか」を考えすぎて行動に移すのもよくないのかもね。嫌いな人が近くにいる違和感が嫌でそいつを殺すとかは少なくとも現代社会では禁忌だし。食いたいから食うし行きたいから歩く。でもだとしたら殺人犯は何を思って殺すのかな。殺したいから殺すのかな。
風邪がつらい。
何なんだよMicrosoft。
どうすんだよ録画できてねーじゃねーか。
何がProなら設定できますだよクソ。
Windows Updateの設定だけで1万円以上も出せるかボケ。
まあ百歩譲って勝手に再起動する事は告知もあるし良いとするよ。
強制アップデートした挙句に不具合が出るってどういうことだよ。
内部でちゃんとチェックしてんのかよ。
ネットに全然接続できなくなって治るまで凄いストレスだったぞ。
というかシャットダウンに種類があるなんて初めて知ったぞ。
ふざけんなMicrosoft。
ただHomeを不便にしてPro買わせようとするのほんとやめろ。
見た目はWindows 2000で十分なんだよ。
コンピューターはダサくて上等だよ。
使ってて楽しいとかそんなの良いんだよ。
Windows Meユーザーを救済しなかった事もずっと覚えてるからな。
ポールグラハム氏のエッセイで、プログラムのいくつかは”エッセイ”ではないかという話を読んではっとなった。
エッセイの元々の意味は「何かを理解するために書いてみる」ものだという。ソフトウェアもわからないままに書き始めたという意味で同じではないか、と。
この感覚を長らく忘れていた。
元々何かを作り始めることは好きではない。生粋のクリエイターでもメイカーでもない。
手先は恐ろしく不器用だったし、作るより壊すのが得意だったからというのもある。
ブルースクリーンに陥ったWindows Meをリブートするために
先生が教えてくれたalt+ctrl+delは、間違いなく最初に覚えたショートカットの一つだろう。
……蛇足だった。
理由がなければ何もしない。プログラマーの怠惰な面だけ受け継いだ私は、いつまでも、好奇心ばかり加速させて読めない本を読むか美味しそうと親指をしゃぶって何もしないだけのガキだ。あるいは、"試しに"やってくれと課題を言われるのをずっと待っているだけの案山子のような。
理解したいという欲求。分かりたいという欲望。あれは難しいからいいやと逃げてどれくらいになる?
ということらしいっすわ。
ああ、今じゃあメモリ2GBで32bit WindowsってんでもうDisられちゃうんだなあ。
おじさんの新入社員のころはWindows2000用のソフトウェアをWindows MEのメモリ128MBのマシンで開発しろって言われたよ。
VC6はそりゃあもう遅かったねえ。
しまいにゃHDDの基板上のチップがパッケージ不良で大規模回収になって、ロットが対象のものだって発表される直前にクラッシュしたのさ。
おじさんがその会社にいたくなくなったのはそれが最初だった。バックアップ用のHDDもなければ、CVSなんて便利なものも無かったから、自腹で購入していたノートパソコンにこっそり移していなければ、ソースが全部クラッシュしていたところだったなあ。
そういやCVS使いたいって言ったらなんか知財の関係の人に申請書を出して許可を得なくちゃいけないとかで面倒くさすぎて諦めたこともあったなあ。ie以外のブラウザも禁止だったなあ。アレも禁止コレも禁止って言った割にはcode redとか感染しまくってて笑えたなあ。
ちくしょう。VS2008 がやられた。
数時間ほどコーディングしていると、IDE のエディタで日本語入力が出来なくなる。
なんだよもう。なんだよもう。なんだよもう。
俺は Windows Me が好きだった。プログラムにバグがあれば、すぐにぶっ飛んでくれるからだ。そしてバグさえ無ければうまく動いてくれた。皆が言うほど Me はドジッ娘なんかじゃなかった。繊細だっただけだ。皆が「Me がまたコケた」と言うたびに、やれやれどんだけ無茶な使い方をしてるんだ、付き合い方がなってないな、とせせら笑っていたものだ。全裸で。
ところが NT 系列はどうだ。プログラムにバグがあっても、潤沢なリソースが勝手にバグを隠蔽しやがる。明らかにスタックあふれてんのにジッと黙ってビバノンノンしている奴の姿を、俺は何度か目撃した。GetMessage() はエラー値を返さない。ウィンドウは表示されない。ただただまったりと、たこルカ★マグロフィーバーを歌っているだけだ。そしてある時突然、どういうルートを辿ったのか svchost.exe がぶっ飛ぶという面白いオチがつくのだ。させ子のくせに。させ子言うな。すいません。
それはともかく、これ、再インスコしかないなあ。。。
オレが支持してるからだよ。
ちょっと前までは共産党を少しかじった社会党を支持したこともありました。ですがその後二大政党とかそういう流れになっておかしくなった頃から、支持している理由がなくなって無党派に。その後、麻生太郎が就任した頃からいろいろ勘案して、民主党にはまだ政権を取らせるには時期尚早である、経済危機の最中につまらんことで政府を混乱させても意味がないという消極的な理由ではあるが、自民党支持者に。
とたんに支持率急降下。
思えばオレの人生はずっとそうだった。たとえばゲーム機一つとってもそうだ。
初めてふれたゲーム機は、ファミコンですらないゲーム機「スーパーカセットビジョン」で、おまけにさわったソフトが「ベーシック入門」のサンプルプログラムの、記憶は曖昧だが「pong」に似たようなゲームだったと記憶している。
その後、自分で初めて買ったゲーム機が、スーパーファミコンではなくメガドライブであった点ですでに間違っていた。なぜか?知るか。それはそのときのオレに聞いてくれ。その後、なぜかかたくなにスーパーファミコンを買わなかったオレが、なぜかサテラビューに心をひかれてスーファミに手を出したのが1995年。ただ、そのときにはすでにPSは発売されていて…。
その後遅ればせながらドラクエなどにはまり(そう、なぜかそのときまでやったことすらなかったのだ…)スーパーマリオRPGなどを通してすっかり妊娠となったオレが、次に選んだハードウエアはヴァーチャルボーイ。そしてNINTENDO 64。さらに最後期になってバイトができるようになって金ができた俺はドリームキャストに、ドラクエやりたさにPSを買い(すでにPS2の計画は明らかになってた)、その間にワンダースワンも試してる。もちろんクリスタルのほうだ。(ピピンアットマーク?それはさすがに無い。断じて自宅の押し入れなどにはない。3DOは欲しかったが金がなかった。飯野万歳)
そして今度こそ外れをひくまいとPS3を買ったがソフトがなく、XBOX360を買ってみてそれなりに満足している。ちなみにWiiは買う気はない。これはオレの些細なプライドだと思って欲しい。もはや意地だ。
ちなみに愛車はついこの間までマツダだったが、この間スバルに乗り換えた。携帯ははじめはドコモだったが、auに乗り換え、今はソフトバンクにしている。データ通信用にWillcomも使っている。
最近はトラックボールを入手するのが年々難しくなっているのを嘆いているし、個人ではずっとWindows MEのパソコンを使っていたが、WIndows Vista搭載機一斉発売の時にVista Home Basic搭載パソコンに乗り換えた。ちなみにガンダムよりザクや特にドムが大好きである。一番好きなガンダムはガンダムXだが、劇場版Zガンダムにはまって揺らいでいる。
そんなオレが自民党支持者だ。特に政策を比べると、積極的によくわないが、少なくとも今この時期をうまく乗り越えるためには、自民党を支持して、少なくともその大枠だけでも維持する方向にしないと、日本は持たないのではないかと考えるようになった。
従って、自民党は滅びる。なぜならオレが支持しているからだ。
訳してみた。あらためて、和訳はものすごく時間を要する作業だということがわかった。もうしないと思う。
注意:以下は意訳、適当訳、稚拙訳であり、誤訳を多々含んでいることは確実であり、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バイナリフォーマットの読み書きをするというのは、何であれあなたが解決しようとしている問題を解決するためのもっとも労働集約的な方法だ。
せいぜい10個くらいしか窓を開いてないのに、特に警告も無くそれ以上新窓やコンテキストメニューが開けなくなるのって、DWMがメモリかシステムリソースを馬鹿食いしてるからという理解でいいのかね。Ctrl+Shift+Escすら利かなくて少しだけ焦った。
増田だから建前もオタクの仁義も何もなく言っちゃうけど。まぁ多少はいるかもしれんが、おおかたはネタですよネタ。昔のギークがPCやらワークステーションに女の子の名前をつけて崇拝してた、とかと同じレベルの。ズリネタなんて、特に同人誌の特に擬人化なんて、ガワは言い訳ですよ。「お。イイ洒落っ気してるね。その洒落っ気がわかる粋なおれはこのエロ本を読む資格がある!」的な。N700系新幹線やらザクII MS-06やらWindows Meやらをベタに犯したくてたまらねぇ!なんてやつはそうそういないですよ。常考。
むしろこの程度のことを誤認してしまうあなたの大谷脳具合が心配です。