「Windows」を含む日記 RSS

はてなキーワード: Windowsとは

2008-03-27

SpiderMonkey

IT戦記みて「SpiderMonkey」がほしくなったけど、

俺のWindowsビルド環境なんかない。

ぐぐったらスタンフォード大が1.6を配ってた。

http://www.stanford.edu/class/cs242/spidermonkey/

古いけどこれでいいや。

ヤターッ!

2008-03-25

http://anond.hatelabo.jp/20080325010323

ちょ、マテ

image for windowsimage for dos)を準備。

:

さらにさらになんと言ってもフリー。これ最強。

バイナリリンクしてこれはないわ。

ま、みんなLICENSE.TXT読むはずだから大丈夫だけど。

一応書いておくと、http://www.terabyteunlimited.com/image-for-dos-v1.htm においてあるのはTrial Versionであって、LICENSE.TXTにあるように"Evaluation Software"だからね。

まぁ、今の版みたいにわかりやすく"Try Image for DOS FREE for 30 Days"とは書いてないけどさ。

ってことで、30日しか使えないから次回はまた別のソフト紹介してね。

http://anond.hatelabo.jp/20080325175547

パソコン通信のひとだよー。

wwwに進出したのは96、7年ごろだー。

windowsTCP/IPが出回ったのはそれくらいの時期じゃないかな…。

いんすとーるするのも大変だった記憶があるよ。

97年にはHPもってたけど、その頃にはみんなHNだったよ。

最初にとったサブドメイン本名のいちぶだったけど…。

www実名の人いたかなー。

余計いなかった気がする。

創作系でたまにクレジットでいれてるひとはいたが。。

内PCのリプレース(WindowsXP)→30台をクローン

年度末ってこともあって、社内のPCがリプレース。

デルの姉ちゃんに値切って値切って買いまくった。

しかし。30台ほどだけど、オラクルやらオフィスやら業務に関連するアプリケーションインストールしなきゃいけない。1台1台はめんどいのでクローニングしたい!

デル姉ちゃんにそういうツールないかね?って聞いたら「100台以上お買い上げの方にはツールを提供させていただいてます」っておい!

いろいろ調べたらあったよ。全部フリークローン化。

ブログとかないから、ここに備忘録

概要

ほとんどここで解決するけど、windowsXPにはsysprepと呼ばれる環境複製用のツールがあるみたい。

(参考:http://www.atmarkit.co.jp/fwin2k/win2ktips/553sysprep/sysprep.html)

後述するOSCDからコピーするか、Windowsサイトでも落とせるらしいけどURL知らない。

流れとしては

マスターPCセットアップ→Sysprepで固有情報削除image for windowsDVDバックアップ→終了

と、至ってかんたん。慣れればsysprepからDVDへのバックアップは作業時間的には10分ぐらいで終わる。(焼く時間除く)

クローンPCイメージ

これはsetupmgrでどの程度コピーさせるかにもよるけど、設定によってはクローンさせたPCを立ち上げると、メーカーPCのように、マシン名の入力だけで業務用アプリインスコされた状態になる。

要するにマスターPCから固有情報を抜いた状態。

だから、

PC買う→クローン化→担当に渡す→担当マシン入力→使える

とかんたんなのだ。もちろんマシン名の省略(全自動)もできる。

ちなみに、ブート可能なDVDを作れるので、買ったPCリストアDVDを入れて、DVDからのブートにすれば後は2回ぐらいエンターキーを押せばバックアップ自動

注意すること

Sysprepでは、SID再生成、プロダクトキーのリムーブコンピュータ名のリムーブとかもできる。(クローンPCで個別に設定できる)

ただ、officeやその他ソフトシリアルはリムーブできないから、ライセンス体系に注意。(officeボリュームライセンスにしないとダメ

ノートンとか個人用のを使ってるのであればそれも注意。使えない。

引き継げるもの

読み返したら思った。引き継げるものと引き継げないものをリスト化しなきゃ。

引き継げないもの

挑戦

image for windowsimage for dos)を準備。

こいつは海外製みたいだけど、HDDをそのままDVDに焼いてくれる。

DOS起動ディスクを作れば、OSが立ち上がる前の状態をバックアップしてくれる。

さらに、ブート可能なメディアになるから、リストア時にいちいち個別アプリケーションインストールする必要が無い。

さらにさらになんと言ってもフリー。これ最強。

上のリンクからimage for dosを落とす。

インスコ方法はここ(http://www.caspers.ii2.cc/image_for_windows/dos_hdd.html)参照。

上記URLではFDDに入れてるけど、CDRとか、DVDでもOK。

USBメモリをブート指定できるならそれでもOK。

これは後から使いまわせるから、取っておいたほうがいい。

マスターPCのセットアップ

どんどん入れる。ひたすらインスコアップデートも忘れずに。

あとリードミーとか、お気に入りとかカスタマイズするならAllUsersフォルダに入れとく。(adminとは別のユーザーを作って担当に渡すため)

もちろんメーラーとかブラウザもalluserでインストール

OSのCDROMからDEPLOY.CABをコピーする。

windowsOSのCDROMにDEPLOY.CABってのがある。(確か/support/tools/だったはず)

それをデスクトップでもどこでもいいからコピーする。

んで解凍解凍するのは、

c:\sysprep

ね。sysprepフォルダは自分で作る。ちなみにこれはセットアップ完了後自動的に削除される。

setupmgr.exeでセットアップ情報の設定

上記で展開したファイルにsetupmgr.exeってのがあるからそれを実行。

sysyprep用のセットアップファイルを作るってので、ウィザードに従って設定するです。

ここで設定したものはクローンに引き継がれるから、組織名とか、タイムゾーンとか、統一させたいものを入れていく。

OSライセンスボリュームライセンスなら、ここでライセンスキーを入れればセットアップ時にライセンスキーを入れなくて済む。

設定しないものはセットアップ時に聞いてくるから、そのときに個別で設定する。

sysprepの実行

setupmgrが終わったら、確かsysprep.iniってファイルができる。(c:\sysprep\sysprep.ini)

それを確認したら、sysprep.exeを起動。

SIDを重複させちゃいけないから、「セキュリティ識別子を・・・」ってとこのチェックはずす。

あとmini-setupを使うにチェック。

シャットダウンモードはどれでもいい。再起動タイミングがわからないから、シャットダウンがいいかも。

「再シールボタンクリックして、シャットダウンするのを待つ。これで7割ぐらい終わり。

マスターPCの確認

心配性なあなたは、再シール化が終わった(シャットダウンした)らいったん起動してみる。

これがクローンの状態。

いろいろ試してみて問題なければもっかいsysprepすればOK。

image for dosでブートさせる

シール後のブートは最初に作ったimage for dosでブートさせるのだ。

DVDコピーする

image for dosで起動させるとDOSメニューが出る出る。

あとはここ見て。

http://www.caspers.ii2.cc/image_for_windows/dos_hdd.html

DVD1枚に入らなければ自動で分割してくれる。

終わり

終わりです。

ためしにオニューのPCに作ったDVDでブートさせてリカバってみよう!

補足よろ。

あとで全部コピペって社内用のマニュアルにするわw

2008-03-21

[]Python 2.5のdistutilsで、Visual Studio 2005を使いたい!

目的

Visual Studio 2005しかインストールしてない場合、Python 2.5だとdistutilsが正しく動かないっぽいので、どうにかしたいYO!

なんでVisual Studio 2005だと、distutilsが動かないんかな?

distutilsでVisual Studioを使うときのコンパイル環境は、sysモジュールのversionプロパティを参照して環境を選択をしているようです。Pythonインタプリタを起動して、以下のような命令を実行してみると、sys.versionプロパティが確認できます。

import sys;print sys.version

Python 2.5.2だと、以下のようになっています。Visual Studio 2003の環境が使われるようです。

2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]

Python 2.6a1だと、以下のようになっています。Visual Studio 2008の環境が使われるようです。

2.6a1 (r26a1:61155, Mar  1 2008, 12:11:56) [MSC v.1500 32 bit (Intel)]

以上から察するに、Python 2.5.2とPython 2.6のどちらでも、Visual Studio 2005の環境が選択されることはないっぽいです。うーん、困った!

解決策

Python 2.6とVisual Studio 2008をインストールしよう!」というのを真っ先に思いつきましたが、あんまり環境を変えたくないんだよなー。というわけで、環境の変更を最低限に抑えてどうにかしてみました。簡単に言うと、distutilsだけの置き換えをしました。

Python 2.6 をインストールする

Python 2.6の公式ダウンロードページから、Windows版のインストーラーをダウンロードして、適当な場所にインストールしてください。

distutilsだけ置き換える

"Python-2.5.2/Lib/distutils"を別の場所に移動し、"Python-2.6a1/Lib/distutils"を"Python-2.5.2/Lib"以下にコピーしてください。以降はPython 2.6は必要ないので、アンインストールして構いません。

ファイルの修正
  • 例外をPython 2.5.2で許されている形式に変更。
  • get_build_version()関数で強制的に8を返すように変更。

上記の2点の変更を行います。distutilsディレクトリに、以下のパッチをあててください。

Index: msvccompiler.py
===================================================================
--- msvccompiler.py
+++ msvccompiler.py
@@ -170,6 +170,7 @@
     if majorVersion == 6:
         minorVersion = 0
     if majorVersion >= 6:
+        return 8
         return majorVersion + minorVersion
     # else we don't know what version of the compiler this is
     return None
Index: msvc9compiler.py
===================================================================
--- msvc9compiler.py
+++ msvc9compiler.py
@@ -128,7 +128,7 @@
                                "sdkinstallrootv2.0")
             else:
                 raise KeyError("sdkinstallrootv2.0")
-        except KeyError as exc: #
+        except KeyError, exc: #
             raise DistutilsPlatformError(
             """Python was built with Visual Studio 2008;
 extensions must be built with a compiler than can generate compatible binaries.
@@ -172,6 +172,7 @@
     if majorVersion == 6:
         minorVersion = 0
     if majorVersion >= 6:
+        return 8
         return majorVersion + minorVersion
     # else we don't know what version of the compiler this is
     return None
@@ -455,7 +456,7 @@
                 try:
                     self.spawn([self.rc] + pp_opts +
                                [output_opt] + [input_opt])
-                except DistutilsExecError as msg:
+                except DistutilsExecError, msg:
                     raise CompileError(msg)
                 continue
             elif ext in self._mc_extensions:
@@ -482,7 +483,7 @@
                     self.spawn([self.rc] +
                                ["/fo" + obj] + [rc_file])
 
-                except DistutilsExecError as msg:
+                except DistutilsExecError, msg:
                     raise CompileError(msg)
                 continue
             else:
@@ -495,7 +496,7 @@
                 self.spawn([self.cc] + compile_opts + pp_opts +
                            [input_opt, output_opt] +
                            extra_postargs)
-            except DistutilsExecError as msg:
+            except DistutilsExecError, msg:
                 raise CompileError(msg)
 
         return objects
@@ -520,7 +521,7 @@
                 pass # XXX what goes here?
             try:
                 self.spawn([self.lib] + lib_args)
-            except DistutilsExecError as msg:
+            except DistutilsExecError, msg:
                 raise LibError(msg)
         else:
             log.debug("skipping %s (up-to-date)", output_filename)
@@ -598,7 +599,7 @@
             self.mkpath(os.path.dirname(output_filename))
             try:
                 self.spawn([self.linker] + ld_args)
-            except DistutilsExecError as msg:
+            except DistutilsExecError, msg:
                 raise LinkError(msg)
 
         else:
manifestファイルを作る

python.exeと同じディレクトリに、以下のXMLを"python.exe.manifest"として保存してください。

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type='win32'
        name='Microsoft.VC80.CRT'
        version='8.0.50608.0'
        processorArchitecture='x86'
        publicKeyToken='1fc8b3b9a1e18e3b'
        />
    </dependentAssembly>
  </dependency>
</assembly>

これで終わりです。

2008-03-20

[]gcc-xmlVisual Studio 2005を使いたい!

gcc-xmlって何?

gccの構文解析の結果(構文木)を、XMLとして出力してくれるツールです。C++の構文解析はやたらと面倒らしいので、こういうのがあるとうれしいみたいよ。

何でわざわざビルドするの?

Py++」というC++のPytyonバインディングで使われていたので、必要になりました。gcc-xml 0.6はバイナリで配布されてるんだけど、MSVC7.1までしか対応してないようで、Visual Studio 2005だと使えませんでした。うーん、困った。というわけで、最新版のソース一式を取得してビルドしてみます。

CMakeをインストールしよう

gcc-xmlビルドには、CMakeというツールが必要になります。CMakeは、オープンソースクロスプラットフォームビルドシステムなんだとか。CMakeの公式サイトから、Windows版のインストーラーをダウンロードしてインストールしよう。

実は最初は、ここでcygwinのsetup.exe経由でのインストールをしてたんですけど、これだとgcc-xmlビルドの段階でエラーが発生しちゃいました。この原因がどうしてもわかんなかったので、あきらめて公式サイトインストーラーを使うことにした次第です。

gcc-xmlソース一式を取得しよう

ソース一式はCVSから取得できます。CVSクライアントはいろんなのがあるので、好きなクライアントを使って取得しよう。ここではcygwinCVSを使って、シェルから以下の命令を実行して取得しました。40MBくらいあるみたい。

$ cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML co gccxml

gcc-xmlビルドしよう その1

Visual Studio 2005 コマンドプロンプト」を起動してください。起動したら、さきほど取得したソース一式が格納されているディレクトリに移動して、以下の命令を実行します。

$ cmake .

cmake.exeにはあらかじめパスを通しておくか、パスを直接指定するのを忘れずにね。

gcc-xmlビルドしよう その2

gcc-xmlビルドはまだ終了してなかった! 一度ビルドが終了しても、第二第三のビルドが必要となって…。などと恐れおののきましたが、二段階でいいみたい。

さきほどの処理が終了すると、同じディレクトリに"gccxml.sln"というソリューションファイルが新しくできあがっているかと思います。これをVisual Studio 2005から開いて、Releaseビルドしよう。ビルドが終了したら、以下の5つの実行ファイルができあがっているはずです。

  • bin/release/gccxml.exe
  • bin/release/gccxml_cc1plus.exe
  • bin/release/gccxml_vcconfig.exe
  • bin/release/gxsysEncodeExecutable.exe
  • bin/release/gxsysProcessFwd9x.exe

gcc-xmlVisual Studio 2005を使えるように設定しよう

まずは環境変数の設定です。Visual Studio 2005を使っていることを、gcc-xmlに高らかに宣言しておこう。

$ set GCCXML_COMPILER=msvc8

つぎに、gccからVisual Studio 2005のインクルードファイルを使えるよう、パッチをあてます。ありがたいことに、"GCC_XML/VcInstall"ディレクトリ以下にVisual Studioバージョンによってパッチが用意されています。そのディレクトリと、パッチを当てたファイルを出力するディレクトリ("gccxml.exe"が置いてあるディレクトリ)を指定して、"gccxml_vcconfig.exe"を実行してください。

$ bin/release/gccxml_vcconfig GCC_XML/VcInstall/ bin/release

gcc-xmlを使ってみよう

あとはbin/releaseにパスを通せば、gcc-xmlが使えるようになったはずです。bin/release以下をどこか適当ディレクトリコピーして、そこにパスを通してもオッケイです。やったね! というわけで、さっそく試してみましょう。

$ gccxml eample1.cpp -fxml=example1.xml

ここでは、解析するC++ソースファイルとしてeample1.cpp入力し、eample1.xmlを出力しています。ちゃんと出力できたかな? できたー! やったー!

以上で終わりです。

2008-03-16

http://alfalfa.livedoor.biz/archives/51258064.html?1205629815

理論的に下よりは上がいいと思って試してみたことあったけど、実質無理だろ?

(Windowsで)ウィンドウが単純に画面の左上端にでる糞ソフトがたまにあって、

メニューという一番大事な所がタスクバーの下にすべりこむので無理。

左も同様。

ワイドスクリーンということもあり、無駄に横幅があるので、右に持ってきている。

左右が上下より勝っている点は、開いているウィンドウ群のリスト(なんていうだこれ?)の幅が狭くなり、大量に並べておける所だ。

で、あとはクイック起動にショートカットたくさんいれてランチャ的にしている。

ソフトのせいで、下か右しか選択肢がないと思う。この糞ソフトの一番有名なのは Meadow

2008-03-08

「スリープ」

Windows Vistaスリープって、平たくいうと最初スタンバイで時間経過により休止状態に移行するアレだよね。

でもMacBook系のスリープって、Windowsでいうところのただのスタンバイのはずだったような。

Windows でいう Sleep 状態って何のことなんだろう? わざわざアルファベットで表記しているからにはちゃんと定義されているんだろうけど。

2008-03-04

http://anond.hatelabo.jp/20080304144536

自分のサイトアクセス解析見てる限りだと、

Vista使ってる人がWindowsユーザーの一割程度しかいないからじゃないかね。

2008-03-03

http://anond.hatelabo.jp/20080303115006

少しワロタ

でも、俺が考えるにVisual BasicPHP初心者用の言語じゃないぜ。

前者イベントドリブンという枠組みに加え、大量のプロパティを否応無く見せ付けてくる分、ハードルが高い。

PHPHTML, HTTPのあたりの知識の習得を前提にするために、やっぱりハードルが高い。

まずはWindowsバッチファイルからはじめるのも面白いかも。

2008-02-29

空白の一日

iTunes Storeなら24時間365日いつでも好きなときに、音楽ビデオオーディオブック無料Podcastを購入できます。MacWindows PCに対応しているので、ライブラリの整理や再生はすべてiTunesにまかせましょう。あとはiPodシンクするだけ。どこへでも持って出かけられます。

2008-02-27

Joel On Software私訳

訳してみた。あらためて、和訳はものすごく時間を要する作業だということがわかった。もうしないと思う。

注意:以下は意訳、適当訳、稚拙訳であり、誤訳を多々含んでいることは確実であり、Joel氏が本当に以下のように述べているとは限りません。

なぜMicrosoft Officeファイルフォーマットはこんなにもややこしいのか (そしてその対処法を幾つか)

Tuesday, February 19, 2008

先週、MicrosoftOfficeバイナリフォーマットを公開したが、このフォーマットは殆ど正気でないように見える。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コードベースにおいて最小の行数になるのは何か、だったことを意味する。SGMLHTML-interchangeableといった標準ファイルフォーマットのようなアイデアは、最初にインターネットドキュメントの相互交換を実現するまで現実のものにはならなかった。それはOfficeバイナリフォーマットが最初に考案されてから10年後のことだったのだ。ドキュメントを交換するのにインポーターエクスポーターを使うことができるという仮定が常にあった。実際Wordは簡便な交換のために設計されたRTFと呼ばれるフォーマットを持っており、そのフォーマットは殆ど最初のころからあり、今も100%サポートされている。

それはアプリケーションの全ての複雑さを反映していなくてはいけない。 全部のチェックボックス、全部のフォーマッティングオプション、そして全部の、Microsoft Officeのフィーチャーは、ファイルフォーマットのどこかで叙述されていなくてはいけない。Wordパラグラフメニューにある、"Keep With Next" と呼ばれるチェックボックス、これはパラグラフを、その後ろのパラグラフと同じページに置くのに必要な場合は、次のページに移動させるもの(?)だが、これもファイルフォーマットの中に無くてはいけない。そしてこれはつまり、あなたがWordドキュメントを正しく読み込める完璧Wordクローンを実装したいなら、そういったフィーチャーを実装しなくてはいけないということだ。Wordドキュメントをロードする競争力のあるワードプロセッサを作っているのなら、ファイルフォーマットからそのビットをロードするコードを書くのには1分しかかからないかもしれないが、ページのレイアウトアルゴリズムをそれに対応させるのに何週間もかかるかもしれない。もしあなたがそうしない場合、カスタマーがあなたのクローンWordファイルを読み込んだら、全部のページがぐちゃぐちゃになってしまうだろう。

それはアプリケーション歴史を反映していなくてはいけない。 このファイルフォーマットに見られる多くの複雑さは、古く、複雑で、愛されず、めったに使われないフィーチャーを反映している。それらはファイルフォーマットのなかに後方互換性のためにまだあり、そしてMicrosoftにとってその辺りのコードを残しておくことには何らコストはかからない。しかしあなたがこれらのファイルフォーマットをparseおよびwriteする一貫した完全な仕事をしたいと思うなら、Microsoftインターンが15年前にやったのと同じことを全て、またやらなくてはいけない。要点は、何千人年の仕事が今のWordExcelには費やされてきたのであり、これらのアプリケーション完璧クローンを作りたいと本当に欲するなら、あなたは何千人年を費やさなくてはならないことになる、ということだ。ファイルフォーマットは単に、アプリケーションサポートする全てのフィーチャーの簡潔なサマリーなのだ。

手始めに、小さな例を一つ、深く見てみよう。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版のExcel1-2-3ファイルインポートできなくてはならず、そしてそれは1900/1/1をエポックとして採用していたからだ。あなたが涙ぐむのも無理はない。歴史のどの時点においても、プログラマが正しいことをしなかった、という時はないのだが、しかし現実にあなたが手にしているものはこれなのだ。

1900と1904のファイルタイプは両方とも世の中には広く存在しており、それは通常、ファイルWindowsMacのどちらで作られたかによる。一方のタイプから他方のタイプへ黙って変換するのはIntegrity的に問題があるので、Excelファイルタイプを変換することをしない。Excelファイルをparseするためには、あなたは両方を扱わなくてはならない。それはファイルからこのbitをロードするだけの問題ではなく、あなたが日付表示と両方のエポックを扱うparsingのコードまで書き直さなくてはいけないということを意味する。実装には何日かかかるだろうと私は思う。

実際、あなたがExcelクローンの作業をするなら、日付の扱いについて、あらゆる種類の微妙ディティール発見することになるだろう。Excelは日付の値をいつ変換するのか? 表示の整形はどうやっているのか? なぜ1/31は今年の January 31と翻訳され、また一方で1/50はJanuary 1st, 1950と翻訳されるのか? Excelソースコードと同じだけの量のドキュメントを書かないがぎり、振る舞いに関しての微妙ビットを全て完全に記述することはできない。

そしてこのレコードは、あなたが扱う何百もあるBIFFレコードの最初の1つに過ぎず、しかももっとも単純なものなのだ。他のレコードの殆どは、より多くのプログラマーを涙に暮れさせるぐらいには十分複雑だ。

唯一導き得る結論はこれだ。

MicrosoftMicrosoftOfficeファイルフォーマットリリースしたことは大変有用なことだが、しかしそれでOfficeファイルフォーマットインポートしたり保存したりするのが楽になるということは全く無さそうだ。それらは狂気じみて複雑で、リッチアプリケーションで、そしてあなたは人気のある20%の部分を実装して80%の人々を幸せにするというくらいのことしかできない。バイナリファイル仕様によってなされるのは、多く見積もっても、著しく複雑なシステムリバースエンジニアリングにかかる時間を何分か削減するくらいだろう。

オーケー, 私はいくつか回避法を教えると約束した。良いニュースは、殆どの良く知られたアプリケーションにとって、Officeバイナリファイルフォーマットを読み書きしようと試みることは誤った決定だということだ。あなたが真剣に考えなくてはいけない代案が2つある。Officeそのものにそれをやらせるか、書き込むのが簡単なファイルフォーマットを使うかだ。

ヘビーな仕事Officeにやらせよう。WordExcelは実に完全なオブジェクトモデルを持っており、COMオートメーションの手段が可能で、これであなたは何でもプログラムでやるようにできる。多くのシチュエーションでは、Office内のコードを再利用するほうがそれを実装しようとするよりも良い。ここにいくつか例がある。

  1. Webベースアプリケーションがあって、それが既存のWordファイルPDFフォーマットに出力するようにする必要がある場合、それを実装するにはこうする: ファイルを読み込んでからWord 2007のビルトインのPDFエクスポーターを使ってそれをPDFとして保存する、数行のWord VBAコードだ。あなたはこのコードIISで動作しているASPASP.NETコードから直接呼び出す。これでうまくいく。最初にWordを立ち上げるときは数秒かかる。2回目はCOMサブシステムによりWordはまたあなたがそれを必要としたときのためにメモリ中にキープされている。それは通常のWebベースアプリケーションにとっては十分に速い。
  2. 上と同じ。ただしあなたのWebホスティング環境Linuxだった場合。フルライセンスWordインストールされたWindows 2003サーバを買う。そしてその仕事をする小さなWebサービスを構築する。C#ASP.NETでの半日の作業だ。
  3. 上と同じ、ただしあなたがよりスケールさせたいと望む場合。ステップ2で構築した全部のボックスの前にロードバランサーを置きなさい。コードは必要ない。

この手のアプローチは、全ての種類の一般的なOfficeタイプについての、サーバ上であなたがやりたいと思うであろうアプリケーションで、うまくいくだろう。例えば:

これらのケースの全てにおいて、Officeオブジェクトインタラクティブ動作でないことを教えてやる方法があり、だから表示をアップデートするのに煩わされたり、ユーザ入力を促す必要はない。ところで、このようなやりかたでいく場合には、gotchas(?)がいくつかあり、そしてそれはMicrosoftは公式にサポートしているものではない。だからあなたがそれを始める前にはKnowledge baseの記事を読むように。

書き込むファイルにはもっとシンプルフォーマットを使いなさい。単にOfficeドキュメントプログラムで生成したいなら、殆どいつでもOfficeバイナリフォーマットよりももっと良いフォーマットWordExcelでも問題なく開くことができるようなフォーマット存在する。

いずれにせよ、全てのOfficeファイルを完全に読み書きできるような、文字通りのOffice競合製品を作ろうとする(その場合には、何千年もの作業があなたに予約される) のでない限り、Officeバイナリフォーマットの読み書きをするというのは、何であれあなたが解決しようとしている問題を解決するためのもっとも労働集約的な方法だ。

2008-02-15

http://anond.hatelabo.jp/20080214141806

マカー が あらわれた!

MacParallelsWindows に すればいいのに」

PCユーザー の こうげき!

(続く)

2008-02-07

自然ブックマークされやすい記事の特徴

・実生活に役立つ記事

例:すぐにできる料理の作り方、掃除を早く終わらせる方法など

・まとめ、総括記事

例:Windowsの動作を早くさせる記事のまとめ、2007年に輝いていたサイトなど

PC関連

例:いますぐ使えるフリーソフトレジストリを簡単お掃除など

PC関連亜種でWeb製作関連

すぐ作れるWeb2.0ロゴの作り方、スタイリッシュソースの書き方など

2ch関連

例:不要ですね。

・○○の裏技・小技的な

例:Windowsピンボールであるボタンを押すと・・?など

・○○の裏事情

例:ゲーム会社社員だけど、プログラマーだけどなど

2008-02-06

まちがい

http://anond.hatelabo.jp/20080206033709

XPまでのWindowsも描画はグラフィックスカードハードウェアで行っているよ。CPUレンダリングなどしていない。

Windows3.1の頃からずっと。

あと、GPUに回せば負荷が軽くなるからってGPUをぶん回すと消費電力が上がるので、ミニノートには向かない。切ったほうがいい。体感速度は上がるけど、視覚効果を切ってもピクセルシェーダで描画するのは電力の無駄遣い。GDI経由で書くのが分相応ってやつだ

2008-02-04

Delphi独学初心者

CodeGear RAD Studio 2007 Trialの中にあるDelphiを使って、メモ帳アプリを作成しているんだけど

Windows付属メモ帳にタブ機能をつけるというものを目指している。

ベクターとかいくと非常に似たものはあるんだけど、余計な機能があったりして使いにくい。

メモ帳自体はすぐ作れた(といっても1時間かかった)んだけど、タブ化がどうしてもわからない

タブとメモスペースを関連付け(?)タブを複数並べて、各タブとメモスペースを連動させるようなイメージかな、とは思うんだけど

TTabControlっていうのをつかっていくのかな?

あと参考までに、サンデープログラマ程度なら、

http://www.codegear.com/jp/downloads/free/turboこっちにある2006 Turbo Delphi Explorer を使えばいいの?

Windowsのある生活

Macのある生活はてなで人気なようだが、

はてな民の部屋が実際どうかというと・・・

Windowsのある生活

うはwwwおまえら涙目www

2008-02-02

http://anond.hatelabo.jp/20080202025622

perlx86からx64に変えたりWINDOWSからMACやLINUXに変えたりしてもコンパイルしなおさなくていいということ?

2008-02-01

http://anond.hatelabo.jp/20080201200117

Windowsソースコードが何千万行もあるらしいからねー。

使いまわしもあるだろうし、セキュリティホールが全くないものを書くのはものすごく難しいと思う。もちろんプログラマは超優秀なんだろうけどね。

ただ、セキュリティホール発見されたときにパッチを公開する責任は、かなり重いんじゃないかな。そこでバランス取ってるんじゃない。

2008-01-31

http://d.hatena.ne.jp/fujipon/20080130#p1

コピープロテクトをしなかったアリスソフトだけが生き残ったりしたけどね。

NEC-PCのほうが68kよりもコピーは盛んだったけど生き残ったのはNECだったし。

Windowsもしかり。

JASRACガチガチにまもられてきたJPOPSは果たしていい物とよべるのか?

メロディーなんざじゃんじゃん流して脳裏に焼き付けたもの勝ち。広告宣伝で売ったもん勝ち。化粧したイケメンや美女に歌わせたほうがCDは売れる。

本当にいいものは、お金にならなくたって生まれてくるんじゃない?

資本主義的な淘汰で良い芸術が選別されるとは思えない。つまらない商業ソングにかき消された名曲がどれだけあろう。

2008-01-26

ヤフオクで売ってるVistaプロダクトキーを買ってみた【平成20年1月27日(日):修正および追記あり】

Vista OEM」あたりでヤフオクを検索すると、プロダクトキーのみを売る出品に出会います。

「正規」や「認証可」と謳っているので、買ってみました。3500円くらいでした。

落札して、代金を振り込むと、びっくりします。

そういえば送料取られなかったな??なんて考えていた矢先です。

プロダクトキーがメールで送信されてきます。

本来なら、最低でも機器+シールです。OEM版、DSP版は機器と一緒に売られる形態ですから。

それがメール、しかも本文にそのまま記載されるとは夢にも思いませんでした。

そして、インストールガイドが添付されてきます。

それがもう、突っ込みどころ満載なので載せてみます。

オンラインの登録は失敗でしたら、MICROSOFT電話をかけて登録をしてください

(電話認証する時、MSホームページで認証するために、インターネットをつながる必要です)。

日本語でおkwwwwwwww

そうなんです。出品者は中国の方みたいです。

その後も面白い解説が続きます。

日本語に適宜直しながらお読みください。

担当者電話がつながりましたら、質問をされますので私が下の教える「電話オペレーターに返答仕方」を順番に答えると認証番号を教えてもらえます。

電話オペレーターに返答仕方:

最初の自己紹介に 「パソコンHDDは壊れましたのでインストールし直したいですとか、元々のWindowsは壊れちゃうとか」と適当にReinstallの原因を説明してください(ネットで買ったものと教えないてください)。そしてMicrosoftから幾つかの質問があります。Microsoft の質問を答えるように次の情報を準備しておいてください。

1. 登録・認証は初めてですか?==>答え:初めてです。

2. プロダクトキーの貼ってあるPCメーカー?==> 答え:DELL(偶にIBM,HP,SONYなどメーカシールもある。その場合、メーカー名前言えばOKです)

3. プロダクトキーの貼ってあるPCの型番? ==>答え:プロダクトキーのメーカーさんに対して適当XP,Vistaプレインストールされたマシン型番を自分で調べて、答えてください。

注:実は 初心者のため、詳しく分かりませんって言った方が良い。

4. WindowsインストールDiscはメーカーのものですか? ==> 答え:はい 購入時についてましたDiscです。

5. プロダクトキーの番号(ID)は何番?==>答え:ライセンスの番号を読んであればOK。

6. Windows Discの色は?==>答え:落札されたディスクの色を教えてください。

7.ID 最初の6文字を教えて下さい。==>答え:認証画面を見ながら、インストールIDを言って下さい。

すると、認証番号を教えてくれます。

これ以外に質問はありませんからご心配しないでください。(これ以外に質問はあれば==>答え:中古パソコンを買ったのでわかりません。)

とても簡単ですので、頑張ってください。

頑張るとか、頑張らないとか、そういう問題じゃねぇよ!

ネットで買ったって教えないでくださいって、真っ黒じゃねぇかよ!

しかも質問をかわすためのテクニックが参考になるよ。

そうか。初心者を装って、中古で買って、HDDがぶっ壊れたっていえば完璧ですね!

んなわけねー。

察するにこのキーは、キージェネかなんかで作ったものなんじゃないでしょうか?

出品者の評価を見ましたが、同一内容の出品を100以上こなしています。明らかにおかしい。

ここまできたら、インストールしてみるしかない。ということで、インストールを敢行しました。

平成20年1月27日(日):以下、具体的な方法を記載していましたが、このエントリーの趣旨から外れると判断し再編集を行っています。

というわけで、ライセンスキーを打ち込み「次へ」

お。通った。

普通インストールが終わりました。

起動してみますが、普通です。いつも使ってるのと変わりありません。(Vistaはすでに使っていて今回は興味本位で試しただけ)

設定が終わったのでオンラインで認証かけてみましょう。

…お。これは駄目か。

ということで、添付ファイルにあったとおり電話してみましょう。

…あれ。

オペレーターに行かずにID発行されてしまった。

プッシュボタンポチポチ押しただけで終わりました。

拍子抜け。

IEを立ち上げ、正規のWindowsなんちゃらで認証をかけてみるも、正規のまま。

これは、MSが早急に対応しないとまずいってレベルじゃない。

Vistaの認証の仕組みが根幹から崩れてる。

ここまで読んだ皆様は賢明だと思いますが、このライセンスキーは不正に発行されたか、中国生産ラインで出品者が覗き見しているとかしてそうな、真っ黒なものです。

買わないようにしてください。

DSP版で買えば、15000円くらいで正規品が買えます。(Vista Home Premiumの場合)

「これ大丈夫なのか?こえぇええええ!」なんて考えながら使うより、安心して使える正規品を買うことを強く勧めて、今回の実験は終了です。

追記:平成20年1月27日(日)(不正利用であることを認識して欲しいので追記を行います)

はてブ見てたらいつの間にか50Userくらいになっていて、使える情報として認識されてしまった感があるのですが、

再度言わせてください。これは利用してはならない。

今回、増田という形で書いたのは一種のMSへの通報を兼ねています。詳細な情報は教えるまでもなく、上のままです。

MSの方も落札してみれば分かると思います。

あと、こういった商品は複数の出品者が売り出していますが、商品説明を見れば一目瞭然です。同一出品者です。

一字一句違わず同じです。デザインだけちがいますが。

あとは、DELLDVDをつけて売ってたりもしますが、これも同じ出品者です。

また、この後元に戻すためにXPクリーンインストールしようとしたら、HDD認識エラーになってしまいました。

Vistaを入れたことと関係はないですが、こういった方法で入手したOSはこういった時にきちんとサポートが受けられません。

こんなことをやっておいて言うのもおかしいですが、ライセンス条項を守らないと、実は逆に消費者不利益を被ります。

不正利用なんて無ければオンラインでの認証なんていらなかった。

それを必要とさせてしまったのは消費者です。これ以上の締め付けを無くすためにも、ヤフオクで買うのは避けてください。

自作PC派なので、MS電話した回数は2桁を超えています。夜中の3時にオペレーターと会話したこともあります。

糞面倒ですよ。

という訳で、最後までお読みいただきありがとうございました。

プロダクトキーはファイル抹殺の上シュレッダーがおいしくいただきました)

ログイン ユーザー登録
ようこそ ゲスト さん