開発環境

23 posts

サーバーの移行を完了しました

ブログを長らくお休みしています。

これまで使用していたサーバーが古くなり、
アパッチやPHPやCMSの更新ができなくなっていましたので、
新しいサーバーに移行しました。

作業は主に新しいWordpressとJoomlaへの移行作業です。

ブログWordpressのデザインは基本的に同じものを使っています。
かっこいいデザインがあれば、変更したいと思います。

母屋のCMSはJoomlaの新しいバージョンに変えました。
内容はあまり変更しなかったのですが、
実情にあわせて、修正・変更したいと思います。

 

話は変わりますが、YouTubeに「日韓併合の歌」という動画がアップされています。
この動画は日本人女性が日韓併合について英語で歌っています。

動画は多少えげつないのですが、内容は至ってまともで、
多くの人が日韓併合に関連して議論しています。

私も投稿の衝動にかられて、発言しています。
議論の白熱化が予想されます。

HP Pavilion 500-240jp

23日ヒューレット・パッカードPavilion 500-240jp(CPU i7、メインメモリー 8GB、HDD 1TB、21.5インチ・モニター付き)が届きました。部品がなくて配達が遅れると聞いていましたが、予定より早く1週間弱で 届きました。(ご丁寧に本体のフロントパネルに「MADE IN TOKYO」というラベルが貼ってあります。)

早速電源をいれ、Winows 8の設定をしました。
簡単な作業でした。

おまけの21.5インチ・モニターもLEDだし、その他の性能も価格も満足です。

ただし、1TBのディスクは、Dドライブが約1GB程度に切ってあってここにはリカバリーソフトが入っていますが、その他はすべてCドライブです。

私の経験ではシステムパーティション=OSは時々壊れますが、データパーティションが壊れたことはないので、システムが壊れても、自分の作業データは取り出せるように、システムとプログラムやデータを別々のパーティションに入れています。

これまで何度も使ったEaseUSで、ただし「64ビットOSでも大丈夫かな」という不安が多少あったのですが、Cドライブ300GB、Dドライブ約1GB、KおよびHドライブ(何故かE,Fではありません)約300GBに設定しリブートすると、恐れたことが起きました。

通常、EaseUSの設定をしてリブートすると、OSが立ち上がる前にEaseUSがパーティションの切り替え作業を始めますが、今回はEaseUSが「何かやらかしました」。電源を切って再立ち上げしても、「Recovery 」と英文のメッセージが出ます。

色々やりましたが結局改善できず、「システムがぶっ壊れた」という結論を出すしかありません。リカバリー・ディスクを作っていないので、残った手は別のインストール・ディスクで新たにOSをインストールするしかありません。

[Action Pack]で購入したWin8.1のディスクでインストールするすることにしました。内臓DVDドライブではなく、USB DVDでのインストールです。これまでは当然内蔵ディスクでインストールしていましたが、USBの方が優先のようです。初めての経験です。

しばらく、コンピュータの最新の環境から遠ざかっていましたので、「世の中色々進歩しているんだな」という感想です。

インストールDVDから、壊れたディスクを覗くことができました。OS修復を試みましたが不可で、新規インストールしました。

無事Win8.1のインストールが完了、再起動すると、HPで元々インストールしてあったOSと、新規のOSが選択できるようになっています。が、旧OSを選択するとやはりOSの起動ができません。新しいOSを起動するしかありません。使えない旧OSの選択を促すのは気持ちが悪いことです。

HPに問い合わせましたが、ユーザにはコンピューターを出荷時の状態に戻すことができないとのことです。

ならばと、自作PCで使っているWin 8のディスクをこのコンピューターに接続してみましたが、動作しません。理由はディスクのパーティション管理がMBRになっていて、HPではGPT だけをサポートしていますので、MBRディスクを受け付けません。

Win 8対応のEaseUSを購入、ディスクを一度クリアして、GPTに初期化して、無事Win 8.1をインストールすることが出来ました。(HPのオリジナル・ディスクはしばらくこのまま保存しておきます)

 

暫くぶりにコンピューターを触るといろいろ新しいことが勉強になります。次のようなことがあります。

今回初めてパーティション管理にGPTを使いました。まだよくわからないことがありますが、GPTでディスクを初期化すると、自動で管理用のパーティションが2,3個できます。

また、ディスクを一つしか接続していないのに、複数パーティションを切ると、C,D,Eという連番ではなくて、 C,E,G になりました。理由がわかりません。

Win8は試用では使ったことがありますが、今回初めて本格的に使います。Win8はWindows 3以来のWindowsの使い勝手から大きく変更されましたので、敬遠していたのですが、これを機会に本気で使っていきたいと思います。

ホームグループはWIn7で導入された機能ですが、Win8では簡単に設定できるようになりました。

自動的にSkyDriveと連動します。これも便利です。

Office2013をインストールしましたが、インターネット(SkyDrive ?)と連動し、まだよくわからないですが、とても改善しているようです。

このブログはWordPressを使っているのですが、いつからかコピー・アンド・ペーストができなくなっていました。WordPressの設定がおかしいのかと色々やりましたがダメで、インターネット・エクスプローラー(IE)でなくSafariならうまくいきましたので、WordPressはSafariを使っていました。

新しいOSはどうなのかと期待したのですが、やはりIEはだめです。
要するIEの問題です。
新しいOSでもWordPressではSafariを使うことにします。

いまブログを書いていますが、ワープロのインテリセンスが改善されているようで、かなを打つと自動で漢字や短い句の候補が表示されます。
これもとてもいい改良です。

これからは、開発は自作のリムーバブル・ディスクを使い、日常的な文書作成やメールはこのコンピュータを使っていこうと思います。

これと前後して、[I-O Data]のnet.USBという簡単な器械を購入しました。これをLANネットワークにつなぎ、これにUSB機器を接続すると、LANでつながったコンピュータから、それらの機器にアクセスできます。

すなわち、net.USBにUSBタイプの外付けHDDを接続しておくと、ネットワーク上のPCからの指示で、自分のPCに直接接続しているように使えます。また、プリントー・サーバーとしても使えるようです。

もう一つ、前々回のブログで、「Dellで使っていたWin7のHDDを他のコンピュータで使うことができない」というマイクロソフトの回答を紹介しましたが、もしかしたらと裏技でWin7 Proにバージョンアップし、リムーバー・ディスクに入れて自作コンピューターで使うことができました。DellのHDDをそのまま生かすことができて、この点でも今回の作業は満足です。

Dell Studio 540が壊れました

メインで使っている「Dell Studio 540」のハードディスクが壊れました。
このコンピュータは2009年7月に500MB VISTAで購入し、
2012年8月HDDが壊れたので1TBに交換し、今回は2度目の交換です。
前回は約3年での交換でしたが、今回は2年足らずでの交換です。

このコンピュータは、昨年OSをWindows7にバージョンアップしましたが、
結局5年間使い続け、様々なソフトを追加してきましたので、
今となっては、使わないソフトも入っていたり、
コンピュータのなかはゴチャゴチャです。

今回新しくOSを入れ替えることも考えたのですが、
これまで使ってきたアプリケーションをすべてインストールしなおさなければいけないので、
新規OSへの変更は躊躇しました。

次のよな引越し作業をしました。

これまで1TBのHDDでしたが、今回は東芝の2TBのHDDを購入しました。

このHDDをUSBでDellに接続、
引越しソフト「EASEUS Partition Manager」を使い、
4つあるパーティションを一つづつ新しいHDDにコピーしましたが、
MBRのことを忘れていました。
すなわち、このままではこのディスクから起動できません。

Windows7のヘルプでは、新しいHDDを接続すると、
初期化のメニューが出ると書いてありますが、
色々やってもそのメニューが出ません。

結局様々なトライは諦めで、丸ごとディスク・コピーをしました。
コピーしたディスクをDellにセットし正常起動することを確認。

1TBを2TBにコピーしたので、新しいディスクに未使用エリアがあります。
パーティションを切り替えて、これでディスクの丸ごと引越しが完了です。
と思ったのですが…

新しいディスクで立ち上げ、
あちこちファイルをみていると突然ダウン。
画面が真っ黒くなり、キーボードもマウスも反応しません。

メインの電源は点灯しているが、HDDのLEDは消えています。
ハードディスクが動いているかどうか確認しませんでしたが、
過去数度同じ現象を経験していましたので、
これが原因でHDDが壊れたと考えるのが合理的です。

このまま使い続けていたのでは、またHDDを壊します。Dellはお払い箱にすることにしました。

Dellにつけた2TBの新しいHDDをリムーバブル・ディスクケースにいれ、
自作のコンピュータにセットし、電源をいれます。

グラフィックが異なるし、どれだけ不具合がでるか、
恐る恐る立上りをみましたが、意外にも全くトラブルがありませんでした。

Winodwsの認証に問題があります。
このOSは「Dell Studio 540」で認証されていたのですが、
ハード環境が変わると、新たな認証が必要になります。
「Action Pack」でWindowsのライセンスを持っているのですが、
これは「Windows 7 Pro」のものです。
どうすればいいかマイクロソフトに問い合わせています。
OSを「Windows 7 Pro」にバージョンアップしなければいけないかもしれません。

また、自作のリムーバブル・ディスク対応コンピュータは、
様々な開発環境でプログラム開発するために使っているので、
やはり、メインのコンピュータを新規に購入しなければ不便です。

これまでDellを使いましたが、今回はヒューレット・パッカードを使うことにしました。
キャンペーンで、CPU i7、メインメモリー 8GB、HDD 1TB、21.5モニター付き、
送料、税込み、9万5千円。「適当か」と思っています。

納期は2.3週間かかるようです。
HPは東京での組み立てています。
Dellは電話対応および組み立ては中国ですので、
本音をいうと「中国はやめておこう」という心境もあります。

 

4月19日 その後:
認証についてマイクロソフトに確認したところ、
Dellで使った「Win 7 Home」OEM OSを、
他で取得したWin 7の他のエディション(正規であっても)にアップグレードできないという回答です。
この際開発環境を再検討しようと思います。

32ビット/64ビットOS 用 アプリケーション

Windows アプリケーションに限った話です。

私は、[Windows 95]以来ずっと、32ビット版OS(オペレーティングシステム)を使ってきました。
今調べるとWindows XPにも64ビット版があったようですが、ごく最近までそのことさえ知りませんでした。

Windows 7の発売以来、64ビット版のOSが普及してきましたので、アプリケーションも64ビット版への対応が必要になってきました。

この度64ビット版への対応を勉強しましたのでご報告いたします。

 

マイクロソフトが提供するWindows開発ツールは[Visual Studio]です。[Visual Studio]は32ビットOSでも64ビットOSでも同じように動作します。

[Visual Studio]で32ビットあるいは64ビット用のアプリケーションを作成するのですが、その方法は、ビルドするときにコンパイルスイッチを、[x86]、[x64]あるいは[AnyCPU]の何れかに設定するだけです。

ここでひとつ理解しておかなければいけないことがあります。

Visual Studioでビルドしたものを、ターゲットマシンにインストールするのですが、Visual Studioの出力は、機械語ではなく、[IL]という中間言語だということです。

この中間言語ファイルの中身は32ビット版/64ビット版共通なのです。ただ違うのはこのファイルのREというヘッダに、[x86]、[x64]あるいは[AnyCPU]の異なる情報が付加されていることです。

ターゲットマシンでこのアプリケーションを実行するとき、.NET実行環境は、[x86]ファイルは32ビット機械語に、[x64]ファイルは64ビット機械語に、[AnyCPU]ファイルは、32ビットOSなら32ビット機械語に、64ビットOSなら64ビット機械語に翻訳しようとします。

ターゲットマシンが32ビットOSのときは、64ビット機械語にすることも、実行することもできませんので、64ビット(x64)指定のアプリケーションは動作しません。

逆に、64ビットマシンでは、32ビットプログラムも64ビットプログラムも動作しますので、上の何れのコンパイル(機械語化)も問題ないように思われますが、ここにも問題があります。

通常私たちが開発するプログラムは、自分のコードだけで完結することはありません。マイクロソフトやサードパーティーの様々なプログラム(ライブラリ、Dll)を利用しながら、アプリケーションを開発していきます。

すべてのライブラリのコンパイルスイッチが、同じ設定であれば問題ないのですが、[x86]と[x64]の混在は許されません。

アプリケーションを[x86]でビルドし、64ビットOSで起動しようとしたとき、ライブラリの一つでも[x64]や[AnyCPU]でビルドされていると動作しません。

すべてのプログラムが[AnyCPU]でビルドされたいれば、問題ないようにおもわれますが、ここにも問題があります。

アプリケーションでWordやExcel等のOfficeを使うことがあります。

殆どすべてのユーザのコンピュータ(ターゲットマシン)には、既にOfficeがインストールされ使われています。64ビットOSでも32版のOfficeをインストールできますし正常に動作します。もしユーザの64ビットOSコンピュータに32ビットOffeceがインストールされていると、問題が生じます。

アプリケーションからこの32ビットOfficeを使いたい場合は、アプリケーションそのものを[x86]でビルドしなければ、いけません。

ところが、
アプリケーションで利用したサードパーティのライブラリが[AnyCPU]や[x64]でビルドされていると、64ビットOSはこの部分を64ビット機械語に翻訳しようとしますので、32ビット/64ビット機械語の混在になり、動作しません。

もう一つ考えられる逃げは、アプリケーションはインストールされているOfficeを使わないで、アプリケーションが必要とする[Runtime]を別途インストールすればいいのではないかということです。マイクロソフトは32ビットおよび64ビット[RunTime]を無償で提供していますので、[x64]あるいは[AnyCPU]でアプリケーションを作成しておいて、必要な[RunTIme]をインストールすれば解決するように思われますが、これができません。

すでに32ビット版のOfficeがインストールされている環境に、64ビット版のOffice RunTimeはインストールできないのです。

結局、
「ターゲットマシンが64ビットOSで、32ビットOfficeがインストールされている環境では、Officeとサードーパーティのライブラリを使ったアプリケーションは動作しない可能性が大きい」というのが結論と思われます。

やりたいこと

歳をとってきて、「もう勉強してもしょうがないか」と時々思いますが、頭が錆びるのを待っているのも芸がないので、健康に気をつけながら勉強していきたいと思います。

 

私はこのところAccessの仕事をしていました。

大きくもない10万行程度のパッケージソフトを作るとき、DBとしてはAccessが最善だと思っています。

その理由は、AccessRuntimeが走ってさえすれば、Accessファイルをターゲットコンピューにコピーするだけで動作してくれるからです。
万一AccessRuntimeがインストールされていなくても、インストールプログラムから簡単にAccessRuntimeをインストールできます。

一方SQL Serverでは、
ターゲットコンピュータにこれがインストールされていることは殆どありませんので、まずSQL Server Expressをインストールして、次にデータベース(インスタンス)を所定の場所に配置し、SQL Serverに接続しなければいけません。

特定の顧客のためのシステム開発であれば、手作業でこれらをセットアップすればいいので、大して問題ではありませんが、パッケージソフトのセットアップで処理するのは難しいことです。

従って、パッケージソフトの開発にSQL Serverを使うのは躊躇します。

 

前置きのようになりましたが、いっとき私はEntity Frameworkを勉強したのですが、AccessでEntity Frameworkが使えないので、その後Entity Frameworkから遠ざかっていました。

最近、Entity Frameworkの技術が進歩していることを知りました。私が勉強したのは、多分バージョン1だったと思いますが、今はV6がリリースされています。

これまで私が書いていたデータベース・プログラムは小さいものですから、AccessでAdoやLINQを使って、DataBaseを直接操作していました。
しかし、本格的なプログラムとなると、User InterfaceとStorageの間に階層を設けて開発しないと、事が複雑になるといわれています。Entity Frameworkはこのあたりの勉強にはいい教材になりそうなので、今後Entity Frameworkを実務で使うかどうか分かりませんが、もう少し勉強しておこうと思います。

以前購入していた、Larry Tennyの”Entity Framework 4.0 Recipes”を少し読み始めました。問題を解いていく形になっていて、少しずつ分かりやすく解説しています。
数年前、Lermanの”Programming Entity Frameword”という本を少し読みましたが、何故かとても読みにくいものでした。
同じLermanの”Code First”と”DbContext”という本がアメリカAmzonで評判がいいので、買いました。読んでみようとおもいます。

 

これまで何度も書きましたが、パッケージソフトのセットアッププログラムにWixを使いたいと思っているのですが、結構ややこしいし、文献も少ないので、勉強はなかなか進みません。

これもものにしたいと、Nick Ramirez”Wix 3.6:  A Developer’s Guide to Windows Installer XML”(PACKT)
を積読しています。

 

当サイトの引越しをしたいので、Joomla の最新版を勉強して、できるだけ早く移植したいと思います。Eric Tiggeler”Joomla! 3 Begginner’s Guide”(PACK) を勉強中です。

よくあることですが、読もうと思って買い込んで、やがて忘れてしまった本があります。Jennifer Marrriot”The Official Joomla {book}”(Addison Wesley)がそうです。こちらは教科書風というかマニュアル風の書き方です。

一方のEric Tiggeler”Joomla! 3 Begginner’s Guide”は例題に従って、Step By Stepでサイトを構築するように書いています。2冊が補完する形で丁度いいです。

 

これら全部を今年中に読めそうにありませんが、できる限り努力したいと思います。
それから、韓国については一通り勉強しましたので、そろそろ中国について勉強したいと思います。

年を取ったら意識して運動しないと、ついつい運動不足になります。できれば週2回のゴルフの練習と、月2回のラウンドを目標にしています。

余談ですが、ゴルフの平日料金は安くなって、関東のそこそこのゴルフ場でも、昼食付きで6,000円代は珍しくありません。
しかも、高齢者はゴルフ場利用税(800円程度)が半額だったり、全額免除だったりします。
さらに、インターネット申込者本人はプレーフィー無料というケースもありますので、昼食代だけで、一日プレーできる幸運も時にはあります。