開発環境

23件の投稿

Vista to Windows 7

Dell Studio 540が私のメインのコンピュータで、もう4年も使っています。
確か、一年ほど前、「ハードディスクがおかしい?」と思って、
早めにハードディスクを交換しましたが、
その後も特に不自由もなく使ってきました。

なによりも静かで、その点で気に入っています。

このコンピュータのOSはVista Homeでこれも特に不満もなかったのですが、
世の中、Windows 7からWindows 8、それも64ビットの時代になったので、
そろそろ私のコンピュータもアップグレードするかという気持ちになってきました。

アップグレードにより、各種のプログラムが動作しなくなることを恐れ、
最初に、DellのHDDのクローンを作成しました。

まず東芝、1T-HDD[DT01ACA100]を5千円チョッとで買い、
[クローンHDD スタンド]という装置で、
DellのHDDから東芝の新しいHDDにまるごとコピーしました。

東芝HDDをDellに装着しましたら、
東芝のHDDドライバのインストールが必要でしたが、
他は順調に動作しました。

Vistaへのアップグレードは二つの方法があります。
Dellについてきた古いWindows 7をインストールするか、
Action Packで買った新しいWin7をインストールするかです。

多分トラブルが少ないだろうと、
Dellが提供したもので、アップグレードすることにしました。

インストールそのものは問題がなかったのですが、
バージョンが古かったので、案の定パッチが沢山あって、
SP1をインストールし、PowerSuiteでレジストリの掃除をして、
Cドライブのデフラグをするのに、丸2日程度かかりました。

全部完了すると、結構早く動作するようになりました。

 

ソフトのテストで様々なターゲットコンピュータが必要になります。

32ビットOSと64ビットOS。
それにOfficeが32ビット版と64ビット版です。

最低でも4種類必要です。
テストのためだけに4台のコンピュータを用意するのは、
経済的ではありません。
私は、リムーバブルディスクを使っていますので、
HDDを4台用意すればいいのですが、それでも効率が悪く、
管理が面倒です。

XenServerとかVirtual Machineとか色々調べたのですが、
私の要求には大げさだったり、少し違ったりします。

システムコマンダを使うことにしました。
昔、HDDが高価で、DOSやWindows 3.1を一台のコンピュータで使いたいときに、
ディスクを分割して、マルチブートするものです。

私自身重宝して使っていたのですが、何時の頃からか使わなくなっていました。

今回調べたら、残念なことにライフボート社が販売を終了していました。

オークションを探してみたら、なんと980円で売っていましたので、
購入しました。

新品が届きましたが、マニュアルを見ると、Windows OSはVistaまでのようです。

OSの起動ではディスクに書かれた特殊なエリアを利用します。

昔のBiosはMBR(マスター・ブート・メモリー)仕様を使っていましたが、
Vista以降は、GPT(GUIDパーティションテーブル)を使っています。

システムコマンダーはMBRだけしか扱えないので、
64ビットOSは駄目のようです。

買っては見たものの役に立たないかもしれません。
試してみます。

64ビットOS

私が主に使っているコンピュータは、
およそ4年前に買った[Dell Studo 540](Vista Home x86)です。
一度ハードディスクを交換しましたが、
静かだし、特に不満はありません。

アプリケーション・ソフトの開発者として「特に不満はない」という意味は、
このコンピュータで開発できないほど大きなプログラム、
すなわち数千万行におよびプログラムは書かないということです。

私がコンピュータを始めたころ、
コンピュータは大変高価で、大きな部屋にドンを座っていて、
夏は大型クーラーが部屋全体を冷却しなければいけない代物でした。

それでも私が初めて使ったコンピュータは16ビットOSだったと思います。
その後「発明」されたパソコンは8ビットOSだったと思います。

8ビットOSということは、何が問題かといえば、
大きなプログラムが書けないということです。

プログラムは最終的に機械語に翻訳されます。

一つの機械語命令は、[オペレータ]部と[オペランド]部からなります。
たとえば[1をアドレスAに保存せよ]という命令では、
オペレータは[保存せよ]、オペランドは[1]と[A]です。

ここで問題は[A]というアドレスです。
アドレス部に8ビット(1バイト)使うと、指定できるアドレスの数は256です。

1ビット 2
2ビット 4
3ビット 8
4ビット 16
5ビット 32
6ビット 64
7ビット 128
8ビット 256

すなわち、8ビットOSでは機械語に落ちた時のプログラムの大きさは最大256行です。

こんな小さなプログラムもパソコンが出現したときは、
みなさんはそれなりに有効に使っていました。

16ビット(2バイト)で約6万、32ビット(4バイト)で約4G(ギガ)の大きさのプログラムが書けます。
アプリケーションの開発では、16ビットコンピュータは時に小さすぎますが、
32ビットコンピュータは普通のプログラム開発では十分です。

上の議論は正確ではありません。
アドレスがバイト(8ビット)の先頭を指すのなら、
上の数はアドレスが指し示すバイトの数です。

私が機械語(アセンブラ)の勉強をしたのは昔のことで、
現在の命令がバイトをさすのかワードを指すのか知りません。

ただ、ここではアドレスの大きさが、指し示すことのできるアドレスの数の上限を決めている、
そしてバイト数による上限が幾らかを理解しておけばいいと思います。

しかしOSの立場からすると、ハードディスクは今や数テラバイトの大きさは普通になってきましたし、
大きなプログラムが何本も走ることはこれからますます増えて、
メインメモリも4Gを超えてきました。
OSは4Gを超えてメモリを管理しなければいけません。

という訳でアプリケーション開発からは必ずしも必要ないのですが、
OSのメモリ管理の立場から64ビットOSが必要になってきました(そう理解しています)。

 

前置きが長くなりましたが、
そんな訳でアプリケーション開発者である私は、64ビットOSにあまり関心がありませんでしたが、
気が付くと、世の中どんどん64ビットOSを採用しています。

私が作っているパッケージソフトも64ビットOSで動作させる必要に迫られてきました。

64ビット版パッケージソフト作成に取り掛かりました。
まず、64ビット[Windows 8]に[Visual Studio 2012 Premium]と[Office 2010]をインストールし、
この上に32ビットVistaで開発したプログラムをコピー、コンパイルしました。

意外にもコンパイルまではすんなりいきましたが、
動作させるとエラーがでます。

実はこのプログラムはデータベースにAccessを使っています。
色々試行錯誤して分かったのですが、
まず、64ビットOSには64ビットOfficeをインストールしなければいけません。
Officeを単独で使う分には32ビット版をインストールしても使えますが、
64ビットアプリケーションから32ビットAccessをコールすることはできません。
ビルドでターゲットコンピュータを32CPUと宣言すれば動作しますが、
そもそも64ビット用アプリケーションを作成しようとしているのですから、論外です。

今問題を拡大したくなかったので、
32ビット版の開発環境に近づけるために、
別のコンピュータに[Windows 7 x64]をインストールし、
32ビット版と同じ[Visual Studio 2010]と[Office 2010 x64]をインストールして、
Accessファイルも新たに作った64ビットAccessにインポートしました。
([Visual Studio 2010]そのものは32ビット製品のようです)

ビルドして、64ビット版アプリケーションが完成です。

 

つぎはセットアップ・プログラムです。
出来上がったアプリケーションソフトをユーザのコンピュータにインストールしなければいけません。

私は、ずっとセットアッププログラムに悩まされてきました。

私にとってのセットアッププログラムの必要条件は、
① プロダクトキーによるソフト管理
② ターゲットコンピュータにAccess Runtimeのような、
アプリケーションで必要なソフトが既にインストールされているかどうか検査し、
インストールされていない場合は自動でインストールする仕組み
③ Patch。
プログラムの更新で、変更部分だけの差分インストール

等です。

セットアップで一番簡単で確実なツールは、
[Visual Studio]に添付されている[Setup Project]プログラムですが、
これは上の条件の何れも満足しません(②は不十分です)。

セットアップソフトとしては、InstallShieldが一番いいのでしょうが、1本数十万円しますし、
OSが変わるとその都度バージョンアップしなければいけません。
私の立場からすれば、コストパフォーマンスの点で不採用です。

数年前、比較的安価なInstallAwareというセットアップソフトを購入したのですが、
このソフトは不具合が多いし、頻繁にバージョンアップします。
バージョンアップでなにが変わったのか分からないのです。
むしろ「バグ取りしただけだろう」といいたいくらいで、
機能的にはいいのですが不信感をもっています。

 

なので、WIX(Windows Installer XML Toolset)を使いたいのですが、
ドキュメントが少ないし、開発が遅い。
「本気で普及させる気があるのかな」と疑うほどです。

今は次のように考えています。
(何れも、32ビット版と64ビット版が必要です)

デモ版は、、[Visual Studio]に添付されている[Setup]プログラムを使う。
製品版はなんとか、InstallAwareの機嫌を取りながら使う。

幸い、WIX3.6では先の②に相当するBootostrapの機能がついたので、
将来のためにWIXを研究する。

ホームページの引っ越し

ホームページの引っ越しについては、
大分前から考えていましたし、
このブログでもそれらしい話を書きました。

どうも現実の話になりそうです。

このサイトではパッケージソフトのダウンロードができるようになっていますが、
今時ウィルスに感染していないという安全性の保障をしなければいけません。

SSLやコードサイニングを採用することになると思いますが、
問題はWEBサーバがこれらをサポートしているかどうかです。

現在使用しているレンタルサーバーはSSLをサポートしていませんので、
サーバーを替えなければいけません。

サーバーを替えると次の問題が発生します。

当サイトはCMSを使っています。
CMSはPHPやデータベースのバージョンに依存しますので、
古いサーバーで作成したCMSはそのままでは動作しません。
バージョンアップしなければいけません。

簡単にバージョンアップできればいいのですが、
CMSによっては自動バージョンアップができません。

当サイトではJoomlaとWordPressを使っていて、
WordPressは簡単にバージョンアップできますが、
Joomlaは簡単ではありません。

なので、この際他のCMSを使うのもいいかと、他のCMSを調べて報告しました。
Drupal、Concrete5、Wordpress等です。

色々考えたのですが、
移植の効率から、これまで使ってきた[Joomula! 3]を使おうと思っています。

[Joomla! 3]は昨年のリリースで日本語の解説がないので、
英語の[Joomla! 3 Beginner’s Guide](Eric Tigger, PACKT 2013)を読み始めました。


 

英文は平易で分かりやすく書いています。
全部で12章ありますが、7章まで読めば移植できるかなと思っています。

コンピュータの引っ越し

私がメインで使っているコンピュータは[Dell Studio 540]で、
もう3年もの間毎日毎日少なくとも7、8時間は使っています。
スピードも静かさも気に入っていますが、
いつも心配しているのはハードディスクの耐久性です。

これまで、使っていたディスクが壊れ、
苦い経験をしたのは一度や二度ではないので、
ディスクの不調だけは気を付けています。

いつもの通りDellの電源をいれると、
OSが立ち上がる前に、英文の嫌なメッセージが画面に出てきました。
最初と最後だけ読んで、
「何度もこのメッセージが出るようなら、管理者に連絡してくれ」
のような文がありましたので、
「いよいよか」と思ってハードディスクを交換することにしました。

古いディスクを新しいディスクに取り換えて、
OSからインストールするのは何度もやりましたが、
これだと開発環境やあらゆるアプリケーションプログラムの再インストールが必要です。

これもまたうんざりする作業が続きますので、
今回はディスクの丸ごと引っ越しをすることにしました。

Dellに問い合わせたら、
予想通り「ユーザがハード構成を変更することはサポートしない」とのことで、
「DellのBiosが市販のマザーボードに比べて特別な仕組みではない」との確認をして、
自力でディスクの引っ越しをすることにしました。

 

こういうこともあろうと、Seagateの1Tのハードディスクと、
引っ越しソフトの[EaseUS Partiton Master]と、
ディスクのクローンを作成できるという、
[クローンHDD スタンド]という何かチャチっぽい装置を買っていました。

今考えるとDellのHDD(500GB)を取り出して、
[クローンHDD スタンド]で丸ごとコピーするのが一番簡単だったと思います。
(EaseUSを使えば何時でもパーティションのリサイズができます)

多分これが最初の失敗です。

慣れないことなので慎重に慎重に、
まず[クローンHDD スタンド]をUSBでDellにつないて、
EaseUSでDellのディスクを
[クローンHDD スタンド]にセットした新しいディスクにコピーすることにしました。

Windowsのディスク管理画面で、「初期化はMBRにするかGPTにするか」聞いてきます。
(この作業はたぶんEaseUSで処理できると思います。これも小さな失敗です)
コンピュータを立ち上げたとき、複数のディスクや、複数のパーティションがある場合、
どのパーティションから起動するかの設定をしておかなければなりません。

それがMBR(Master Boot Record)で、これについてはよく知っていたのです。
GPTは知らなかったのですが、GPTが新しい規格なら「新しいに超したことはない」と、
GPTで初期化しました。

これが二番目の失敗です。

Dellのディスクは500GBで、3っつのパーティションに切ってあります。
Cドライブ(実際にはパーティション)にはOSやあらゆるアプリケーションが、
DドライブにはDell専用のリカバリーソフトが、
Eドライブには私のプログラムやドキュメントが入っています。
(ディスクの中の物理的順番はD、C、Eです)

Eドライブは私がDellに注文して作成してもらいました。

初期化がすんだので、EaseUSでディスクを丸ごとコピーしました。
多分これも失敗だったのだろうと思います。
新しいディスクに予想しなかったスペースができたと思います。

他にも不都合があったと思いますが、
それよりなによりDellではGPTディスクを認識しません。
2年前に組み立てた自作コンピュータでもダメです。

やり替えることにしました。

 

初期化をMBRにし、
Dドライブのソフトはなくてもいいようなので、
Dドライブはコピーしないで、
順番も単純にC、D、Eを新しいディスクのK、L(アキ)、Mにパーティションコピーしました。

EaseUSは実際のコピーはWindowsの中では実行しないで、
シャットダウンして新たにEaseUSの画面(Dos?)でコピーしていきます。

500GBのディスクのコピーは数時間おそらく6時間程度要したと思います。

予想していたのですが、次の問題が発生しました。
OSが立ち上がりません。
MBRが正しく設定されていないからです。

この設定はEaseUSで簡単に処理できるのですが、
EaseUSがすべて英語で、MBRの設定方法が分からなかったので、
OSのセットアップCDで修正することにしました。
(多分3つ目の失敗です)

新たらしいHDDを自作コンピュータにセットし(こちらはリムーバブルディスクを使っています)、
Vista Setup CDから起動、「初期設定の回復」の処理をして(これも数時間要しました)、
やっと新しいディスクが正しく起動するようになりました。

引っ越し作業は成功です。

ディスクをかえても以前と同じ画面が出てくるのは、
これまで経験がなかったので、
不思議な感じがします。

 

ところで、OS起動前のエラーメッセージですが、
よくみると、「wdf01000.sys」に関するもので、
ハードの不調ではなく、ソフトの不具合のようです。

インターネットを探していたら、Logicoolのソフトが問題を起こしているようです。
私はキーボートもマウスもLogicoolの無線のUnifying製品を使っています。
キーボードはソーラーのK750でケーブルも電源も不要だし、
薄型でキータッチも気に入っています。

マウスはM705でこちらは乾電池ですが、
一度も電池交換せず2年程度使っています。
今も「後7日」とか電池残が表示されますが、
まだしばらく大丈夫のようです。
こちらもほぼ満足しています。
(もう一つもっている[MX Revolution]の方がデザイン、持ち具合で勝りますが、
欠点は充電式で面倒です)

さてwdf01000.sysの問題ですが、インターネットをみると、
「UniBlueのSpeedUpPCを通すといい」とありました。

幸いUniBlueのPowersuiteを使っていますので
(頻繁に起動するのはうるさいので手動の起動にしています)、
起動しコンピュータを整理したので(?)、
そもそもの問題も解決したかもしれません。

 

初めてのことで沢山の失敗をしましたが、
なにごともやってみなければ分かりません。

InDesign 2

マニュアルの作成に、InDesignでコチョコチョっと作業していたのですが、
「やはりちゃんと勉強しなければ、InDesignのよさが分からない」と勉強を始めました。

中古で買った[Adobe InDesign 2.0]についていたマニュアルは字が細かく読みにくいので、
以前買っておいたマイコミの[InDesign CS5 マスターブック]を読んでいます。

この手の勉強は「やりながら」がいいようで、
コチョコチョっと触っていたので、
本を読むと断片的な知識の整理になり、
「そうか。そうか」と習得のスピードは速いと思います。

幸か不幸かInDesignのバージョンが古いので、
参考書もAmazonで探すと中古で数百円で手に入れることができます。
[InDesign 逆引きクイックリファレンス]も追加で購入しました。

 

ソフトの内容ですが、
現在多くの出版社がこのソフトを使っているのでしょう。
「さすが!」と感心しています。

そもそもInDesignに飛びついた一番の理由は、
コンピュータの画像をマニュアルに載せようとするとなかなかうまくいかなくて、
困っていたのですが、
InDesignでテストしたらすっきり処理してくれたことでした。

アプリケーションの出力画面をクリップボードに取り込み、
JPEGやビットマップのデータにして、
その大きさでマニュアルに張り付けるのなら問題ないのですが、
縮尺を変えると画像にノイズが入ります。

小さくするとぼけますし、大きくするとギザギザになります。
これをInDesignはこともなげに最適な画像にしてくれます。

そのほか、見出しは2行使って表示するとか、
本文の先頭の一文字を特別大きく表示するとか、
文章作成のいろいろなバリエーションがあります。

脚注やルビも作成できるようです。

もちろん縦書き横書きとか。

マニュアルの章ごとに、[ドキュメント]ファイルを作成し、
一連の[ドキュメント]を一つの[book]にします。

これだけで、各[ドキュメント]に正しくページ番号を振ってくれます。
各[ドキュメント]で[見出し]を使っておけば、
それにしたがって目次も自動です。
当然ページ番号を正しく表記します。
ただし、版が古いからか体裁のバリエーションはないようです。

索引も自動で作成します。
十分使っていませんが、これもうれしい機能です。

そのほかにも印刷本にするための、様々な機能がついていますが、
私は使わないし、よくわかりません。