どうもはかばかしい進捗がない

どうもはかばかしい進捗がない.Shirley(VAIO 4インチミニノート)はむちゃくちゃ遅いし,Tamoz(3インチタブレット)はタッチペンを使わないと誤動作するくらい文字が小さい.Tamozはそこそこ動いてくれるが,唯一の32bitCPUマシンであるShirleyは泣きたくなるほど遅い.どこかで中古品を見つけてきたいくらいだがともかく辛抱して使うしかない.32bit/64bitというのが問題になっているが,一つ勘違いしていたことがある.32/64という区別はOSの場合とCPUの場合があるという点だ.つまり,32ビット機と言ってもOSが32ビットでCPU64ビットということがある.64ビット機というのは概ねOS64ビット,CPU62ビットと考えて間違いないと思われるが…

これまで確認した限りではVisual Studio 2017でビルドしたパッケージはCPU62ビット機では「ソリューションプラットフォーム」の設定如何に関わらず動作するが,CPU32ビット機では「ソリューションプラットフォーム」の設定如何に関わらず動作しないという状態になっているように思われる.この点を確認するためにはどうしてもCPU32ビット機というのが必要になってくるが,現状唯一のCPU32ビット機であるShirleyは遅過ぎてほとんど使いものにならないというレベルだ.タスクマネージャで不要と思われるバックグラウンドタスクをいくつか殺してみたが,あまり効果はなかった.姉貴の旦那が持っているノートを貸してもらうということも考えてみたが,このノートのOSは多分Windows 7のはずだが、CPUは64ビットである可能性が高い.

今後は32ビット機というときはCPU32ビットのPCを指すものとし,32ビットOSを意味する場合には明示的に示すことにする.(これは通常の用語と少し違うかもしれない…)ShirleyにはVS2017をインストールしてあるが,コンポーネントが不足しているため満足な動作になっていない.Visual Basicに関わるコンポーネントを改めてダウンロードしてインストールしてみたが,どうもまだ思わしくないところがある.Visual Studio 2017自体は32ビットアプリケーションなので32ビット機でも64ビット機でも同様に動作しなくてはならないはずなのだが…

image
Windows Formの追加で新しい項目の追加が開いてしまう

インストールを妨げる要因として,.NETのバージョンが合わない(必要なバージョンがインストールされていない)場合と,C++がインストールされていない場合がある.必要な.NETがインストールされていても「有効化」されていないと同じようなエラーになる.このような場合はMSからダウンロードしても「すでにインストールされています」と言って弾かれてしまう.ランタイムをMSサイトからダウンロードするsetup.exeも失敗することがある.

Windows 10タブレットは前から使っているが,2 in 1 ノートで通常はキーボード付きで使っているため,キーボードのないタブレット上でゼルコバの木がどのような挙動を示すかという点に関してはほとんど知らなかった.今回tamozさんのタブレット上でZTを起動して初めてかなり悲惨なことになっていることに気付いたが,この辺りはすでに相当昔にkamui氏から指摘されていたところだ.「タッチ操作」をサポートすることはもはや喫緊の課題になっている.

作戦タイムが必要だ.ここでは一旦開始点まで退却するしかないのではないだろうか?つまり,「当面はターゲットを64ビット Windows 10 搭載機に限定する」という当初方針だ.この条件ならインストール可能なバージョンはすでに確保されている.あとはリリース可能な程度までデバッグするだけだ.ここでこれ以上深入りしていたら持ち時間を使い切ってしまう可能性がある.実際,天皇家系図だけでも相当な不具合が生じているのでまずこれを片付けないことにはお話にならない.

ShirleyではVSを一度アンインストールしてもう一度今度はVisual Studio 2017をフルインストールしてみることにする.どのくらい時間が掛かるかわからないが,放置しておけばよいので作業の妨げにはならない.タブレットTamozは32ビットOS(CPU64ビット)だが,64ビットOSのメイン機とまったく同じ動作になっているので動作上の問題はない.「タッチ操作」は「次期課題」としておこう.

Semalt.com によるリファラスパムを遮断する方法

デスクトップ上にはこれまでのランニングテストで発生した障害ファイルが11本もある.まず,これを片付けておこう.⇒いや,特に問題なくすべて開ける.おそらくリリース版でSTOP文が残っているバージョンがあったのだろう.もうひとつ気になっているのは,ヘルプ画面の下の方が切れているという不良だ.

image

デザイン画面ではもちろんこんな風にはなっていない.このパネルは最前面に表示されるフロートパネルでサイズ変更はできないから,レイアウトの計算などは一切行っていないはずなのだが…MaximumSizeとMinimumSizeを固定したら,とりあえず画面が切れることはなくなった.ただし,デザイン画面とはレイアウトが微妙に異なる…高さはほぼ一致するが,横幅がかなり詰まっている.おそらくそのためではないかと思われるが,フォントが少しぼやけて見える※.Max, Minをデフォルトに戻した場合は縦横ともに均等に縮小する.どういうことだろう?

※これは画面を解像度の高い(ピクセルサイズの小さい)モニターから低いモニターにドラッグ移動して比較しているためではないか?

カード画面もデザインより縦横ともに詰まっている.ただし,横幅の方が少し縮み方は大きい.カード画面は可変サイズなので調整すればデザインとほぼ同等の見え方にはなる.ファイルを開き直したとき,系図画面は前回と同じサイズ・位置に表示されるが,カード画面は位置は同じでもサイズは標準のサイズに戻される.タイトル枠設定画面も可変サイズだが再起動時には標準サイズに戻される.手動で変更したサイズと標準サイズはボタンで切り替えできるので,仕様的にはこれでもよいのかもしれないが,使い勝手からは閉じたときの画面がそのまま表示された方がよいような気がする.

▲表示→タイトル枠表示で系図画面にタイトルの表示/非表示を切り替えるようになっているが,違和感がある.ここは表示→タイトル枠設定画面を表示ではないだろうか?この場合はタイトル枠設定タブがタイトル情報タブより先に来るべきだろう.

描画処理系では座標・サイズとも物理単位(ピクセル)で操作しているが,元々のプロトタイプでTwipという単位を使っていたため保存数値はTwipになっている.Twipは絶対単位で1Twip=1/20ポイント=1/1440インチ=0.01763888mm=17.6μmに当たる.絶対単位では画面上のサイズと印刷出力のサイズは厳密に一致するが,ピクセルの場合はアスペクト比というものがあるため調整が必要になるという点に配慮したものだ.しかし,事実上ピクセルで扱った方がずっとわかり易いので現在ではTwipなどの単位はほとんど廃れてしまっているのではないだろうか?

Twip⇔ピクセルの変換でこれほど大きな誤差が出るとは考え難いので何か別な理由を考える必要がある.フォームのサイズはGetWorkingAreaという関数から取得しているが,この関数が返す値は「ディスプレィの作業領域」とされているので,タイトルバーなどの領域が除外されているのではないだろうか?⇒フォームのWidthとHeightを直接取り出しても同じ結果だ.デザイン画面ではSizeは554×381だが,ヘルプ画面のLoad関数の入口ではこの値は411×282に変わっている.およそ0.74くらいに縮小している.これから推測すると,静的なデザイン画面と実行時の内部(System.Drawing)では座標単位が違うような気がする.

LoadWndPostにも多少疑問はあるが動作は変化しないので,オリジナルに戻しておこう.いまのところ対処策としてはMaxとMinを固定するという方法しかない.ただし,この方法ではカード画面のように実行時に変化する画面を扱えない.カード画面も画面下部が少し切れている.

image

カード画面のデザイン時のサイズは695×476,Max=任意, Min=527×238となっている.カード画面サイズという関数でサイズをランタイムに決定しているが,既定値は現在516×370となっている.修正履歴的に変化しているのに対応していないのではないだろうか?⇒どうもますますわからなくなってきた.695×476を既定値とすると,下図のように下部に広い空白が生じてしまう.

image

この図面は縮小されているので実際にはもっと大きい.⇒原因がわからないので,暫定的に高さを調整して516×382としておこう.バージョンパネルはもうちょっと縦が詰まってもよいので554×371とする.

▲タモリんちで人名枠線なしのとき人名下部の垂線が人名描画域に越境している.

系図画面設定パネルはとりあえず問題なさそうだが,タイトル枠設定画面はすこしだけ下が切れている.プロパティ画面その他のパネルもサイズ的な問題はなさそうだ.系図画面設定パネルとタイトル枠設定画面の違いはFormBoderStyleで,前者はFixedDialog,後者はSizeableとなっている.タイトル枠設定画面もSizeableとすれば多少の難はあるが,文字が切れたりすることはなくなる.⇒これから言えることは,画面をサイズ変更可に設定すると,システム側で何か余分なことをしてくれるということのようだ.何をしているのかわからないが,ありがた迷惑だ.

タイトル枠設定画面はタイトル設定画面サイズという関数でサイズを決定している.SetupTitleSizeには既定値の516×370が入っている.これは正確にカード画面と同寸だ.というか,①カード画面,②系図画面設定,③タイトル枠設定の3つの画面は完全に同寸というのが元々の設計なのだが…現状ではタイトル枠設定画面は516×373という数字になった.しかし,奇妙なことにこれらの横幅は同じ値を取っているのに不揃いな林檎たちになっている.

調整すれば完全に同一サイズに「見える」ようにすることは可能とは思われるが,これは後日ということにしよう.タブレットで「タッチ操作」を実装しようとするときにはいずれこの辺りをみっちりやるしかなくなるはずなので…一応これで一番気になるところは調整できたことにして,現状で目につく最大の瑕疵である切れ切れの垂線の問題に移ることにしよう.かなりひどいことになっている.

image

何が原因かよくわからないがブツブツに切れてしまっている.この図面では多重カードは発生していないので,少数の先祖ノードを除けばほとんどすべてのノードには親からの垂線が入って来なくてはならない.途中で線分が切れていることをプログラム的に検出することは可能だろうか?各線分がオブジェクトとして管理されていればそれもそれほど難しい話ではないが,ゼルコバの木では描画出力はすべて描画関数によってディスプレイに直接描画されているため,事後に検査するというのはかなり難しい.しかし,今後このようなことが二度と起きないようにするためにはなんらかの検査関数を作ってチェックする必要がある.

系図図面は人名枠と水平線および垂直線から構成されるが,人名枠を1個の垂線とみなせば,かなり単純な線分の集合とみなすことができる.従って,グラフG(V, E)としてV={線分の端点},E={線分}からなるグラフを考えることができる.Vの部分集合p={人名枠線分の端点}とし,pに属する2つの点pとp’が「親子関係」にあるとき,pからp’に至る経路があるかどうかを探索すればよい.座標計算には誤差があり得るので完全一致できない場合には近傍探索でもよいが,むしろ誤差が発生する原因を追求する端緒としても活用できる.同様のことは夫婦関係についても言える.原則的に夫婦は同じ世代に属すると考えられるが世代差が出る場合もあり得るので同じ手法で一般的に解いた方がよい.

グラフ理論的なアルゴリズム(抽象グラフ検証系)はこれまでにもある程度実装しているので多分それほど難しくはないのではないかと思う.これはあくまで部外の検査であり,リリース版ではそこまでやる必要はないが,描画図形をオブジェクトとして扱えるようになると,たとえば線分をくリックしたときそれに接続する経路の全長をハイライトしたりなどのことができるので,その方向性も考えておく必要がある.さらには線分をクリックして選択→削除で(親子・夫婦)関係を切断したり,人名枠を2つ選択して関係付けなどの直観的操作も実装可能になる.

Windows 10 32ビット機にVS2017をインストールする

uuidの更新の問題は置いて,先に32/64ビットの問題を片付けてしまおう.32ビット Windows 10のShirleybirdにインストールできないという問題が続いている.開発機(64ビット)ではソリューションプラットフォームを①Any CPU, ②Mixed Platforms, ③Win32のいずれにしてもリリース版を起動することができるが,ShirleyではWin32でもインストールできない状態が続いている.VC++ 14の再頒布可能パッケージをインストールするsetupでもエラーが出た.VC++ 14の再頒布可能パッケージはマイクロソフトから直接ダウンロードしてインストールできたが,インストール時のエラーHRESULT=2147024770は解消しない.

2.0.2.088という2018年にビルドしたバージョンではHRESULT = 2147010895エラーになる.コマンドラインからmsconfig.exeを実行してSystem Configuration→Tools→Change UAC settings→Launch→User Account Control Settings→Never notifyを設定しても状況は変わらない.2012年の1.9.9.99でも同じエラーが出る.⇒最終手段として実機にVSをインストールしてビルドしてみよう.

ようやくインストールが完了した.開発パッケージの転送だけでもかなり掛かりそうだ.この機械はともかく遅い.ソリューションを開こうとしてエラーになった.このエラーはVSをアップグレードするたびに出てくるが,VSは開発機と同じバージョンなのでおかしい.

image

OKを押して何が起こるかみてみよう.セットアッププロジェクトが未サポートということのようだ.どう対処したのか忘れてしまった.ソリューションエクスプローラには「非互換」と表示されている.⇒ツール→拡張機能と更新プログラムでInstaller Projectを導入する必要がある.

インストールできたが,セットアッププロジェクトについた(非互換)のラベルは消えない.ともかく,デバッグモードでクリーンビルドしてみよう.1本コンパイルするのに15秒以上掛かっているのでビルド完了までには相当掛かりそうだ.⇒ビルドは完了したが,遅いだけでなく誤動作している.VBプロジェクトにFormを追加しようとしているのに項目の追加パネルが出てしまう.しかもプロジェクトを選択という指示を出しているのになんの選択肢も与えられない.しかもサブメニューのどの項目でも同じパネルが出てくる.IDEが壊れているのかマシンが壊れているかのどちらかとしか考えられない.

もうひとつのタブレット(TAMOZ)を試してみよう.画面は小さいがこちらの方がずっと速いし,動作も確実だ.VSのダウンロードを始めたが,VSをインストールするより前にアプリケーションのインストールの可否を確認した方がよいのではないだろうか?⇒ダウンロードと平行してVSのインストールが実行されているので止めようもないが…TamozにVS2017のインストールは終わったが、ゼルコバの木のインストール時に、.NET 2.0.50727 ないし、2.0 を要求される.マイクロソフトのダウンロードサイトには3.5より番号の小さいバージョンは置いていない※. 上位バージョンをインストールしようとすると,すでにこのマシンには.NET 4.8がインストールされていると言われてしまう.

※Googleで検索すると出てくる.x86, x64の指定も効く

.NETの場合は上方コンパチになっていたはずだと思うのだが…なぜこのような動作になるのか?VBの必須コンポーネントには .NET 4.5.2(x86 および x64)が指定されている.この動作はClickOnceに関係しているのだろうか?どうもこの辺りが関係しているようだ.

How to enable Microsoft .NET Framework 3.5 on your operating system

つまり,.NET Frameworkはインストールされているが,有効化されていないということのようだ.有効化するためにはWindowsの機能というコントロールパネルを出して,チェックを入れなくてはならない.

image

下位のチェックボックスは空のままでよいのだが,枠が小さくて指でチェックを外せないためそのままOKしたら,Windows Updateになってしまった.タッチスクリーンは箸の先などでは反応しない…電荷が必要なのだろうか?いや,タッチペンの素材はゴムのようなものが使われているので,弾力なのかもしれない…導電性は必要なようだ.

Tamozには2.2.0.008をインストールすることができた.ただし,このマシンは32ビット機と思っていたのだが違う.OSは確かに32ビットだが,CPUはx64ベースつまり64ビット機だ.一方Shirleyの方はOS,CPUともに32ビットだ.Tamozで動作しているのはOSのバージョンとは無関係にCPUがx64であるためと考えられる.このバージョンはWIN32でビルドされているが,おそらくAny CPUでも動作するのではないかと推定される.⇒これは試してみる必要があるが…ともかくAny CPU版を作ってみよう.⇒ビルドに失敗した.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3988,5): error MSB3482: 署名中にエラーが発生しました: ..\Release\app.publish\ZelkovaTree2021.exe の署名に失敗しました。

いままで出たことのないエラーのような気がする.VBのプロパティ→署名でCheckOnce マニフェストに署名するのチェックがオンになっている.オフにしてやってみよう.確かに通った.無意識にクリックしてしまったのだろうか?古いバージョンをチェックしてみた方がよい.⇒確かに以前の版ではチェックは落ちている.TamozではAny CPU版も問題なくインストールできた.Shirleyの動作から見るとVS2017で生成した版はCPU32ビット機では動かないということになるのだが…

どうもShirleyの動作自体芳しいものではないのでそう結論付けるのは早過ぎるような気がする.Shirleyは異常なくらい遅いだけでなく,VSの動作でもかなりおかしな動きになることがある.たとえば,ツールと機能でインストールされているプログラムが見つからないと言うなど…⇒いや,今度はそのエラーは出なかった.どうしようもないほどに遅いが,もう少し使ってみることにしよう.

確かにわたしもかなりボケて来ているかもしれない.無茶遅いマシンなのでできる限りダウンロードの容量を小さくしようとしてケチったものだから,C++用のコンポーネントしか入っていなかった.ゼルコバの木ではVisual Basicを併用している.上記の「VBプロジェクトにFormを追加しようとしているのに項目の追加パネルが出てしまう」という事象が起きるのも当然だ.この追加だけで10GB…

▲タブレットはPC代わりにかなり使われるようになっているが,キーボードやマウスを持たないタブレットではタッチ操作のサポートが必須になってくる.

Thunderbirdが起動できないという悪夢

OSの再インストールに掛かる前にあらかじめThunderbirdのprofilesをバックアップし,念のためImportExprotTools NGでプロファイル(アカウント情報)をエクスポートして臨んだのだが,復元に失敗した.Thunderbirdではヘルプ→トラブルシューティング情報→プロファイルフォルダで保存フォルダを確認することができる.再インストール後,このフォルダの中に入っている(複数の)*.defaultフォルダをバックアップしたフォルダで差し替えてみたところ,「Thunderbirdでプロファイルが見つかりません」というエラーが起きるようになってしまった.

悪いことにこのエラーはアプリをアンインストール→再インストールしてアカウント未登録の状態まで初期化しても消えない.つまり,Thunderbirdがまったく起動できないという状態になってしまった.わたしの環境ではThunderbirdメールデータ本体は外部ディスクのフォルダに保存するようになっていて,このフォルダはしっかりバックアップを取ってあるから紛失する虞は皆無だが,プログラムが起動できないということになったら最悪このPCのHD自体をフォーマットしなくてはならないかもしれない.絶対絶命のピンチに追い込まれ真っ青というところだ.幸いこの悪夢からは下記リンクの情報で脱出することはできた…

thunderbirdでプロファイルが見つかりませんというエラー

Thunderbirdのメニューにはプロファイルを操作するコマンドは存在しないが,Thunderbirdをコマンドプロンプトから以下のコマンドでプロファイルマネージャを起動することができる.

>Thunderbird.exe –p

image

ここで「新しいプロファイル」を作成し,「古いプロファイル」を削除してやれば問題なく起動できるようになる.新しいプロファイルを作成するときには,アカウント設定やメールデータを保存するフォルダを指定することもできる.これでまたThunderbirdを立ち上げることができるようになったので,ImportExprotTools NGアドインをインストールして,エクスポートしたプロファイルをインポートしようとしたのだが,インポートのコマンドメニューが見つからない.

ツール→設定とデータのインポートはThunderbird付属のインポートツールだが,これはシステムに別のメールアプリがインストールされているときにその情報をインポートするためのもので,いまの場合にはまったく役に立たない.アドオンマネージャはアドオン自体を操作するためのものでアドオンを実行するためのものではない.ImportExprotTools NGをインストールするとツールメニューの一番下にImportExprotTools NGという項目が現れてそこからコマンドを実行することができる.しかし,このときは焦っていたためだろうか?理由はよく覚えていないが,このコマンドを発見することができなかった.

プロファイルのインポートはあきらめて手動でアカウントを3つ登録し,アカウントのアカウント設定→サーバー設定→メッセージの保存→メッセージの保存先で常用している外部フォルダを指定してようやく復元することができた.Thunderbirdで使っているわたしのアカウントはすべてウェブメールアカウントだが,Thunderbirdはネット上の主なウェブメールサーバーを知っているのでこの設定はほとんど自動でやってくれる.最初からそうすればよかったのだが,アカウントごとの細かい調整などもあるのでできれば現状をそのまま復元したかった…

ちなみに現在ネット上で一番安全なメールアカウントはウェブアカウントであるということをご存知だろうか?hotmail, outlook, gmailなどいろいろあるが,昔は「ウェブメールなんて(少なくともフォーマルなコミュニケーションでは危ないから)使っちゃだめだよ」と言われ,捨てメアドなどと蔑まれていたのだが,この間(ネットにアクセスできなかった時期)に大きく変わり二段階認証なども導入されてセキュリティ上もっとも堅牢なアカウトと認識されるようになって来た.逆にドメイン名の付いたメールはそこまでやっていないところが多いので,脆弱なところがかなり残っていると考えられる.(もちろんマイクロソフトやグーグルが本当に信頼できるのかどうか?というのはまた別の問題だ)

ImportExprotTools NGのプロファイルのエクスポート/インポート機能はまだベータ版で動作は保証されない.実際,事後にインポートを試してみたがあまり芳しいものではなかった.一番確実なのは最初からプロファイルマネージャを使って外部フォルダにプロファイルを保存するようにしておくことではないだろうか?現在Cドライブの空き容量は13.4GBある.この作業に掛かったときの空き容量は2.48GBだったので10GB以上増加している.インストールしていないアプリもいくつかあるのでこの先どうなるかはわからないが,OSの再インストールに丸一日を潰しただけのメリットはあったのではないかと思う.

いよいよ本格的な「再開発」の段階に入るところだが,その前に新版と旧版が併存できることを確認しておきたい.ユーザはこれまで使っていたバージョンを温存しておきたいと考えると思われるからだ.馬場研究所でリリースしたプログラムはC:\Program Files (x86)\babalaboというフォルダに格納される.これまではその下のZelkova Tree 2020(古いバージョンではZelova Beta2)に保存していたが,今回の版からはZelkov-Tree 2021に保存するようになっている.わたしの理解ではこれによって2つの異なるインストールを併存させることができるようになっているはずだと考えているのだが,果たしてそうなっているかどうか?試しておきたい.もし,それでうまくゆかないということになるとまたいろいろと厄介な話が出てくる.

ともかく出来不出来はともかくとしてバージョン2.1以下のインストーラを探してみよう.いや,一般ユーザの手元にあるのはおそらく,2.0より前の1.xxxだと思われるのでその辺りとの競合を見た方がよいのではないか?公式リリースの最終版は2018071321-SXATQFMだ.これをインストールしてみよう.ダメだ!OCXの登録に失敗している.

image

新版をアンインストールしてもう一度試してみる.いや,そもそも新版はまだインストールされていない.しかし,デスクトップにはZTのアイコンがあり,起動することはできる.リンク先はZelkova-Tree 2021と表示されているだけだ.ZT2021のOCXは登録されていないはずだから,実際にはEXEを直接叩いて開くというのと同じ動作になっているものと思われる.ZT2021を先にインストールしてみよう.⇒勘違いしている.開発機とタブレットの画面を混同している.開発機にはZT2021がインストールされている.

2018071321-SXATQFMのバージョンは2.0.2.088だ.2.0.0より小さいものの方がよい.2.0.0より若い番号というと2012年まで遡らなくてはならない.2013年12月26日~2014年1月2日のおよそ1年間は2.0.0.000という同じ番号を使い続けている.これはこの時期に「正式版」をVersion 2.0.0という切りのよい番号で発行しようとしていたためだ.結局一年かけてもその目標は達成されず,その後は順調に番号をインクリメントしてゆくことになる.1.9番台の最終バージョンは2012042421-YLUFYWLの1.9.9.99でおそらくこの版がもっとも普及している版ではないかと思う.

1.9.9.99は2012年4月24日にリリースされ,そのあとの公式リリースはほぼ完全に途絶えているので,あとからユーザ会に参加したメンバーもずっとこの版を使っていたものと思われる.さて,ともかくこれを開発機にインストールしてみよう.2012042421-YLUFYWLにはいくつか同名ないし類似の異種バージョンがある.しかし,msiインストーラが生成されたのは2012年4月24日で間違いないように思われる.この版はZelkova Beta2というフォルダにインストールされる.しかし,インストールには失敗した.

image

このエラーはZelkova Beta2は64ビット機にはインストールできないということを示しているものと思われる.今回ターゲットは当面64ビット機に限定しているので対象外ということになるが,バージョンを確定するために32ビット機を起こしてインストール可能であることだけは確認しておこう.⇒32ビット機のSHIRLEYBIRD(tamo2さんが置いていってくれたミニノート,Windows 10)にインストールを試みたが失敗した.この時期はもしかするとXPの時代だったかも知れないが…

Windows 10 32ビット機にインストールできるバージョンというのはあるだろうか?最新版はAny CPUでビルドしているのでもしかするとインストールできる可能性はある.再開発版初版をShirleybirdに送ってみよう.⇒ダメだ.当面は32ビット機はターゲットとしないとしているので,最新版がインストールできないというのはよいとしても,32ビットWindows 10にインストールできる版がないというのもかなりまずいのではないか?64ビットへの移行というのは比較的新しいトレンドなので,既存の公式リリース版の中に32ビットにインストールできる版がないということはあまり考えられない.

lenovoノートは32ビットのWindows 7だった.この時期のリリース版というのはあるはずだ.遅くとも2012年頃にはlenovoを使っている.従って2012年からつい最近まではlenovoで開発していたことになる.Visual Studio 2005を使い始めたのがいつ頃か?正確には特定できないが,かなりの期間はXPとWindows 7がターゲットになっていたはずだ.Windows のバージョンとVSのバージョンの対比も正確なところはよくわからないが,Windows 10にインストールするにはVisual Studio 2012ないし2015ないし2017に移行する必要があったのではないだろうか?2018年12月にはネット復帰し,その時期にDiginnosに乗り換えているが,VS2015を導入したのはそれよりもかなり早いはずだ.

2018/07/13の2.0.2.088はインストールできなかった.2019/01/06でVS2010を試しているので,Windows 10で動作するバージョンというのは2019年より後なのではないだろうか?lenovo のOSをWindows 7から10にグレードアップしている可能性はある.Windows 10 対応は2019年以降と考えてよさそうだが,2019/01/11に「Visual Studio 2017 でビルドして Windows 7 にインストール」という記事がある.

Windows 10のZEKOVA_2020でリリース版を走らせたとき,「タイプ初期化子が例外をスローしました」というエラーが出る.VBのプロパティでコンパイル→ターゲットCPUをAnyCPUからx96x86に変えてやればエラーは解消する.

Windows 7の環境でもこの点は確認されている.Windows 10で生成→Windows 7にインストール,ないしWindows 7で生成→Windows 7にインストールも確認されている.Windows 7搭載機は32ビットCPUと推定される.この記事には「Visual Studio 2015まではXPをサポートしていた」ともある.Windows 7搭載機と呼んでいるのはlenovo G570のことだ.この時期にはまだICU室で延命していたものと思われる.CPUはインテル Core i5 2410Mでビット数は明記されていないが32ビットで間違いない.「Windows 10のZEKOVA_2020」というのは新規導入されたdiginnos(Windows 10 64ビット)のことだ.※

※この点は再確認を要する.現時点では再開発版初版も同じ設定(VBのプロパティ→コンパイル→ターゲットCPU=x86)になっている.

VSの構成マネージャではVBのプラットフォームはAny CPU固定で変えられないが,ソリューションプラットフォームではWin32を選択できる.これまではつねにAny CPUとしてきたが,Win32というリリースを試してみることにする.⇒デバッグモードでは走ったが,リリースモードではエラーになってしまう.⇒デバッグモードで成功したあと,リリースモードでも走行するようになった.ただし,どちらのモードでもForm1.vbにOCXを貼り込むことはできない.

image

一応インストール版はできたのでインストールしてみよう.⇒開発機にはインストールできて実行も可能だが,Shirleybirdにはインストールできなかった.エラーコードはHRESULT=2147024770.ネットで検索するとこのエラーは

pgoledb.dllが依存しているMSVCP60.DLLが無い

ということのようで,MSVCP60.DLLをダウンロードし、C:\WINNT\system32にコピーすれば解決するとある.ShirleybirdにはこのDLLは存在する.ただし,サイズはかなり違うので別物だ.32ビット版と64ビット版の違いだろう.最新版をダウンロードしてみよう.⇒system32フォルダにコピーしようとして拒否された.管理者権限のあるアカウントでログインしているのだが…

System32にファイルを保存できる管理者について。

64ビット機でも32ビットDLLは持っている.

On a 64bit version of Windows, the default folder for 32bit DLL-files is C:\Windows\SysWOW64\ , and for 64bit dll-files C:\Windows\System32\ . 

開発機の32ビット版MSVCP60.DLLとShirleybirdが持っているそれとは同じだ.従って,上記「MSVCP60.DLLが無い」には該当しない.

.NETのバージョンはどうか?⇒Shirleyには.Net Framework 4.8がインストールされている.リリースビルドではC++のランタイムをインストールするためのsetup.exeが作られているのでこれを使ってみよう.VBの必須コンポーネントにはVisual C++ “14” Runtime Libraries (x86)が含まれている.ネット情報ではVC++ 2017ではVC++14.1 再頒布可能パッケージが必要とある.⇒現在Windows のupdateを実施中なのでこれが完了してから,もう一度インストールを試しておこう.その後でランタイムのインストールを実行してみる.

hama2234氏から短信.「家系図ソフトは今でも使用可能ですか?」という問い合わせへの回答に対する返信だ.皆さんしびれを切らしてお待ちになっていらっしゃるのだが…ユーザ会メンバー千人のうちおそらく何人かはすでにお亡くなりになっているに違いない(と確信を持って言える).いまでも有効なメアドはおそらく登録数の一割を切っているのではないだろうか?まぁ,ともかくわたしはまだ残っているのだから残っている時間のうちにできるだけのことをやらなくてはならない…

Visual Studio ではターゲットプラットフォームとしてソリューションプラットフォームとプロジェクトプラットフォームを区別している.ソリューションはプログラム全体,プロジェクトはそれを構成するコンポーネントを意味するが,プラットフォームはそこで使われるCPUの命令セット(の汎用レジスタビット長)を示している.(ソリューションは64ビットでも一部のコンポーネントは32ビットということがあり得る).

現在使われているCPUのビット長は64ビットか32ビットだ.この仕事を始めたころは(メインフレームを除けば)8ビット長というのしかなくて,16ビットパソコンが出てくるのをまだ一度も会ったことのない花嫁のように憧れたものだ.VSでは64ビットをx64,32ビットをx86と表記している.x86というのはCPUの種別で昔8086(8ビット)ないし80286(16ビット)など86系と呼ばれるCPUがあったことの名残りではないかと思われる.別の言い方では64ビットをAny CPU,32ビットをWIN32と表記することもある.

これは主にソリューションプラットフォームや構成マネージャで使われる呼称だ.Any CPUの意味は時と場合によって変化しているようで,昔はAny CPUでビルドしたパッケージが32ビットで走っていたのにいまはそれが通用しないように変わっているような気がする.マイクロソフトのデベロッパ用製品ではパラメータの「設定」と実際の「動作」に齟齬があるというのは普通であるようだ.普通であるだけでなく,それが時間とともに(勝手に)変化してしまうのでそれに付いてゆくのは至難の業と言わなくてはならない.

さて,WIN32でビルドしたパッケージが64ビット機で動作することは確認しているが,ひとつ問題が起きているのでそれを見ておくことにしよう.ZelkovaZ.idlでuuidと一緒にバージョンを設定しているところがある.これもビルド時に更新する必要がある.現在値は3.0だが,アプリと同じ2.2としてみよう.どこかに3.0のオブジェクトが残っているようで,参照の追加で項目がダブってしまう.また,リビルドしてVBからOCXへの参照が解決できない.⇒奥の手の「Form1にOCXを貼り込む」で解消した.「ひとつ問題が起きている」というのはそのことなので,一応これは事実上解消したということになるのだが,uuid(Universally Unique Identifier, マイクロソフトではGUIDと呼ぶ)が同じというのはやはり問題があるのではないだろうか?

ネット上にはuuid生成ツールがあるので書き換えてみよう.Zでは4個のuuidを使っている.その他にGUIDとして定義されているものもある.

  1. uuid 3B5BE240 ZelkovaZ.idl ゼルコバの木系図エンジン for WIN32
  2. uuid F3C38B89 ZelkovaZ.idl ディスパッチインターフェイス
  3. uuid CAB2182C ZelkovaZ.idl イベントインターフェイス
  4. uuid 4E61AC51 ZelkovaZ.idl Zelkova Tree 2016 コントロール
  5. GUID 601c9479 ZelkovaDLL.cpp BASED_CODE _tlid V=2.1
  6. GUID 4E61AC51 ZelkovaCtrl.cpp IMPLEMENT_OLECREATE_EX ZELKOVAZ.ZelkovaCtrl3.1 クラスファクトリ
  7. GUID F3C38B89 ZelkovaCtrl.cpp IID_DZelkovaZ3 インターフェイス ID
  8. GUID CAB2182C ZelkovaCtrl.cpp IID_DZelkovaZ3Events インターフェイス ID
  9. GUID 3B5BE240 ZelkovaZ.cpp BASED_CODE _tlid アプリケーション V=2.0

_wVerMajorと_wVerMinorでDLLとOCXのバージョンを設定している.これらの値はタイプライブラリに保存されているものと思われる.uuidと_wVerMajor,_wVerMinorが一致するものを同一オブジェクトと認定しているのだろう.修正箇所には「2012-10-16 再開発版」を入れておく.⇒いや,単にコメントを挿入するのではなく,コンパイルオプションとして切り分けられるようにしておいた方がよいと思う.

ShirleyのWindows Updateは完了し再起動したが,1本だけ更新に失敗している.悪意のあるソフトウェアの削除プログラムでもしかするとカスペルスキーが妨害している可能性も考えられる.Windowsのバージョンを1909に上げるという更新が出てきたので,実行しておこう.

コンパイルオプションは「再開発版20201016」とし,ZとDLLのそれぞれのstdafx.hで定義する.IDLファイルを修正していてVisual Studioがクラッシュしてしまった.IDLファイルでは日本語リテラルを使えないのだろうか?「再開発版20201016」を止めて「ZELKOVA2021RESTART」を使うことにした.

Shirleyを再起動して更新はすべて完了.上記のエラーも解消している.ここでもう一度WIN32版のインストールを試みたが,同じエラーになった.エラーを無視して完了することはできるが,アプリを起動しても立ち上がって来ない.このマシンにはゼルコバの木ベータ2がインストールしてあったので走らせてみたところ,下記のエラーになった.

image

GCのロードに失敗しているようだ.このアプリは記憶には残っていないが※,存在しているところを見ると一度は実行に成功しているのではないだろうか?32ビット版を32ビット環境でビルドするということは考えられるが,その前にVS2017には64ビット版と32ビット版があったはずなので,それを試してみるということも考えられる.C++ランタイムをインストールするためのsetup.exeを実行してみたところ,エラーが発生した.ログを見ると下記のような障害が起きている.

※1.9.9.99のインストールを試みたとき生成されたものと思われる.

(2020/10/16 19:19:01) u’vcredist_x86\vc_redist.x86.exe’ from ‘https://aka.ms/vs/16/release/14.25.28508/VC_Redist.x86.exe’ to ‘C:\Users\Zelkova\AppData\Local\Temp\VSD5A51.tmp\’

どうもこのリンクはリンク切れになっているようだ.いや,存在する.こちら(ネットアクセス用のサブマシン)ではダウンロードできた.⇒Shirleyはネットに接続していなかった.⇒ネットに接続してsetup.exeを再実行してみたが,以下のエラーになった.

image

OKでダウンロードを再実行しても効果はない.何がまずいのかよくわからないが,C++のランタイムはマイクロソフトから単体でもダウンロードできるはずなので,まずそれを試してみるということにしておこう.※後述で試している. ZELKOVA2021RESTARTを立てて(uuid更新バージョン)ビルドするとビルド中に以下のエラーになる.

image

もう一度ビルドするとエラーは解消したが,実行時に以下で停止した.

image

考えられるのはネットで生成したuuidがマイクロソフトのGUIDの要件に合致していないということくらいだが…ネットのuuidはバージョン4の乱数で生成されている.ctlreg.cppで起きているエラーはやはりGUIDに関係したものだ.

How can I give an old ActiveX control new GUIDs?
GUIDs pop up everywhere in software!

VSはbuilt in GUID generatorを持っている!多分これを使えば間違いないだろう.ShirleyでVC++ 2017の再頒布可能パッケージをダウンロードしてインストールしたが,WIN32版のインストールには失敗した.今度は少し違うエラーコードが出ている.

image

上書きインストールができるようになった

ようやくスムースにインストールできるようになった.マイクロソフトは一時廃止したセットアッププロジェクトを復活させているが,アップデートのルールが変わってしまっている.以前はRemovePreviousVersionがTRUEなら上書きインストールを黙って実行していたものが,パッケージに含まれる個別コンポーネントのファイルバージョンをチェックして新しいものでなければインストールしないという動作になっていた.バカげた仕様だと思うが従うしかない.ともかくこれでインストール上の問題は基本的に解決したのではないかと思われる.開発機はWindows 10 Version 1909の64ビット機なので現在使われているもっとも標準的構成と考えてよいと思う.

タブレットの「Windows Updateのクリーンアップができない」という問題でコマンドプロンプトから管理者権限で「Windows Updateコンポーネントをリセットする」ための一連のコマンドを実行するということをやっているが効果はなかった.あとはOSを再インストールするしかないのだが,その前に一応「後始末」を付けておこう.以下を実施する必要がある.

rmdir c:\windows\softwaredistribution.old /q /s
rmdir c:\windows\System32\catroot2.old /q /s

インストーラ生成手順については落ち着いてからもう一度考察することにする.先に進む前に面倒だがタブレットのOSの再インストールを片付けてしまうことにする.多分ユーザ領域を温存した再インストールができるはずだが,一番面倒なのはそのあと使っているアプリをすべて再インストールする必要があるという点だ.このマシンにインストールされているアプリをチェックしておこう.⇒このマシンには最小限のものしかインストールされていない.

  1. BlueGriffon version 3.1
  2. Google Chrome
  3. Google 日本語入力
  4. Java 8 Update 261
  5. Lhaplus
  6. Mery (x64) 2.6.7
  7. Microsoft Garage Mouse without Borders
  8. Mozilla Maintenance Service
  9. Mozilla Thunderbird 8.3.2 (x86 ja)
  10. Realtek SDIO Wireless LAN Driver
  11. Windows Essentials 2012
  12. カスペルスキーインターネットセキュリティ
  13. カスペルスキーセキュアコネクション

この他にマイクロソフト関係が3,インテルが2あるが多分プレインストールと思われるので自動的に補充されるはずだ.Windows Essentials 2012はOpen LIve Writerのことではないかと思う.Open LIve Writerのフォルダの設置場所はE:\My Weblog Posts.Optionsから設定できる.Thunderbirdの設定をエクスポートする方法が見つからない.⇒以下のデータをまるごとコピーして元に戻すというだけだ.

C\Users\<ユーザー名>\AppData\Roaming\Thunderbird\profiles\<英数字>.default

データ本体は別のところに置いてあるが,多分アカウント情報はここにあると思われるので大丈夫だと思う.最悪アカウントを再設定したとしてもデータは外部にあるのでリンクするのは難しくない.拡張機能でアドオンを使うという手もある.⇒ImportExportTools NG はあったが無効になっている.Thunderbird 78.3.2と互換性がないという理由だ.⇒製品レビューには「Works great with Thunderbird 78.3.2.」のような書き込みもあるのだが…自動更新になっていて2020-03-19に更新されたことになっている.インストールされているのは4.0.4だが,ネット上にはもっと新しいバージョン10.0.1がある.

https://addons.thunderbird.net/en-US/thunderbird/addon/importexporttools-ng/

インストールできた.使えそうだ.いろいろなフォーマットが扱えるようになっているが,アカウント設定のエキスポート/インポートはできないような?一番簡単なのはヘルプ→トラブルシューティング情報→プロファイルフォルダーでデフォルトフォルダを開き,その内容をバックアップしてリストアでよいのではないか?ImportExportTools NGにはプロファイルのエクスポート/インポートがあるので多分それと同等のことができるのではないかと思う.⇒両方やっておくことにする.プロファイルのエクスポートはかなり時間が掛かりそうだ.⇒終わった.

さて,いよいよOSの再インストールに掛かるとしよう.設定→回復→このPCを初期状態に戻すを試してみる.「個人情報を保持する」を選択し,「このPCに最初から付属しているアプリと設定を復元」で初期化を実行する.⇒ディスク領域が足りませんになってしまった.多分以前試みたときもここで挫折していたものと思われる.1.56GB不足している.現状でCドライブの空き領域は2.48GBだ.⇒アプリをアンインストールしておこう.Thunderbirdはやはり結構大きかったようだ.

次のアプリ(上記以外)はWebまたはインストールディスクから再インストールする必要があると出た.

  1. Intel Processor Graphics
  2. Microsoft SQL Server 2005 Compact Edition [ENU]
  3. Microsoft Update Health Tools
  4. Update for Windows 10 for x64-based Systems (KB4480730)

OSの再インストール(設定→更新とセキュリティ→回復→このPCを初期状態に戻す)は難なく終わり,アプリの再インストールも順調に進んですでに午前中にあとはThunderbirdだけというところまで進んでいたのだが…その先で地獄を見ることになった.

切り株は残った

2019-02-06版という1年半前のバージョンに戻ることに決定した.これが我々のスタート台となる切り株だ.この夏の連日の炎暑で唐沢川の土堤の桜が軒並み枯れかけている.この桜は40年前(わたしが東京で暮らしているころ)に若かりしころの友人Oが青年会議所理事長の職にある時期全滅しかけていた桜並木を復活させたものだ.いまは,歴代がそれを引き継いでいるので多分大丈夫だろうとは思うが…さて,我々もこの倒壊したゼルコバの木に残った切り株からもう一度再スタートすることにしよう.事実上これが最後の挑戦になることだけは間違いがない.

この版ではまだ「基準ノード配偶者近接配置」の修正が収束していないものと思われるが,これは一時置いて,「安定版」の確立に当面は注力することにする.目標は11月8日(立皇嗣の礼挙行)までに公式リリースすることとしておこう.「安定版」とは,標準的かつ包括的なテストをすべてクリアしたものと定義される.しばらく遠ざかっていたので「標準的な包括テスト」で何をやっていたのかも忘れてしまっているが,主なテストはヘルプメニューに入っているのですぐにでも掛かれるだろう.この版では最小限,最新版のWindows 10搭載64ビット機で動作することが求められる.開発機はこの条件を満たしているだろうか?Windows UpdateすればOSは最新版になるはずだが,開発機はネットには常時接続していない.チェックしてみよう.開発機のOSは

Windows 10 Home バージョン: 1909 インストール:2020/02/11 ビルド:18363.1082

だ.タブレットは

Windows 10 Home バージョン: 1903 インストール:2020/03/17 ビルド:18362.900

でインストール日は遅いのにバージョンは古くなっている.現在 Windows 10 の最新バージョンは2004になっている.標準テストはやはり開発機でやるしかないので一度ネットにつないでアップデートするしかないだろう.Bluetoothテザリングなら複数機に接続できる.2004のアップデートは始まっているようだが順番があるようだ.手動で実行することもできるようだが,そこまでやるまでのことではないように思われるので(むしろ1909のユーザの方が多いのでは)自動でアップデートされるまで待つことにする.

アップデート時の不具合に備えてFileRepository(ドライバーのバックアップ)をコピーした.回復ドライブも作っておこう.⇒Windows Updateが進行中なのでシステムのバックアップはできない.どうも相当な時間が掛かりそうだ.システムイメージのバックアップ機能はWindows 10では非推奨になっている.Windows 10ではファイル履歴でバックアップという方法が導入されている.これはサイトのバックアップのように定時にバックアップするという方法だが,果たして必要だろうか?⇒回復ドライブだけ作っておくことにする.回復ドライブはコントロールパネル→回復でアクセスできる.16GB以上必要と出ているが,16GBのUSBを試してみる.これもまた相当な時間が掛かりそうだ.

ディスク領域が逼迫している.「Windows Updateのクリーンアップができない」という問題があり,削除できない不要なファイルが4.5GBくらいある.OSを再インストールすれば解決するという話だが,それもかなり厄介だ.参考になる記事があったので試してみる.

https://answers.microsoft.com/ja-jp/windows/forum/all/windows/5a67137b-5ee4-4cb0-8392-483de6d83174

再開発版のリリース版を起こしてみよう.バージョン番号は2.2.0.000とした.製品名=Zelkova-Tree 2021,主題=系図作成ソフトゼルコバの木2021,タイトル=ゼルコバの木正式版 Ver 2.2.0.000とする.製造者URLもAYANETからhttps://zelkova-tree.net/WordPress/ に変えた.⇒DLLでエラーが出た.

error D8016: コマンド ライン オプション ‘/ZI’ と ‘/GL’ は同時に指定できません

/GLはプログラム全体の最適化,/ZIはデバッグ情報の形式エディットコンティニュのプログラムデータベースという意味のようだ.リリース版ではデバッグ情報はほとんど不要と思われるが,プログラムデータベース(Zi)としてみよう.⇒通った.GCで警告が出ている.

warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外:0x8002801D (TYPE_E_LIBNOTREGISTERED))

バージョン番号を振り間違えていた.

ERROR: Invalid product version ‘2.2.0.000’. Must be of format ‘##.##.####’

2.2.0000としなくてはならないということだろう.msiファイル名がZelkovaTreeSetup.2.1.0.016.msiのままになっている.これはどこで決めていたのだろう?⇒VBのプロパティ→発行→発行するバージョンではないか?⇒いや,ここを変えても変化しない.セットアッププロジェクトのプロパティ→Output file nameという場所がある.⇒インストーラがビルドできた.リリース版を走らせてみる.⇒まだスプラッシュパネルが出ている間にエラーで停止した.

image

OKを押しても連続して出てくる.サンプルはタモリさんちの超複雑な家系.ZEL.TRIBEBOX::GetMajorTribeChainで出している模様だが,呼び出し履歴では確認できない.これはおそらくデバッグ用のチェックボックスではないかと思われる.checktribesenzoというデバッグ専用関数が呼び出されている.確かにそういう作りにはなっているが,非デバッグ時に呼び出されるとStop文で停止するようになっている.STOPマクロは非デバッグでも定義されているが,funcnameなどが未定義となるためコンパイル時エラーになる.⇒Stop文を廃止,ダンプ文に変えた.check = c,ないしcheck = 1が残留している.⇒一掃した.

回復ドライブの作成が完了した.14.4GBしか使っていないのでまだ5.5GB余っている.V2.2.0.000_R20201014というパッケージを作ってバージョンを確保した.プログラムはデフォルトでは製品名として登録したZelkova-Tree 2021というフォルダに保存される.

C:\Program Files (x86)\babalabo\Zelkova-Tree 2021\

おかしい.またSTOPボックスが出てしまった.ビルドしていなかったのだろうか?開発環境ではすでにボックスは出ない動作になっている.ビルドし直して再インストールしているのに動作が変わらない.かなりおかしい.アプリ登録されているのは一つだけだ.アンインストールして再インストールしてみる.⇒これで動作するようになったが,かなりまずい現象だ.インストーラのファイル名を変更していなかったのが敗因なのだろうか?VBのバージョン番号はおそらく無関係と思われるが…

ヘルプ→バージョン情報の内容も変化していない.⇒更新した.リビルドして再インストールしたが内容は同じままだ.つまり,プログラム自体の差し替えが実行されていない.Program Files(x86)を見ると12:50に生成したものが入っている.もう一度リビルドしてみよう.⇒ダメだ!アンインストールすれば入るのは確実とは思われるが,それでは持たない(クレームが殺到する).Program Filesの中身が変わっていないのだから動作するはずがない.UpgradeCodeも変えてみたのだが…RemovePreviousVersionはTRUEになっている.

EXEの名前もZelkovaTree2021.exeに変えなくてはならない.⇒VBのプロパティ→アプリケーションでアセンブリ名を変える必要がある.アセンブリ名をZelkovaTree2021と変えることでEXEの名前は変わり,ZelkovaTree2021.exeもProgram Filesに入るようになったが,元のZelkovaTree2019.exeも残っている.立ち上がって来るのは(おそらく)2019の方だ.ヘルプのバージョン情報もおかしい.バージョン番号とリリース日付だけ古い値のままになっている.

▲軟体動物2.zelのタイトルが軟体動物2.ZEL《頭足類家系図》となっているが,おかしい.

アプリが3つに増殖している.デスクトップ上にはアイコンは一つしか出ていない.すべてアンインストールして再インストールしてみた.今度初めてライセンスキーの登録画面が出てきた.

image

しかし,スプラッシュパネルの内容は古いままだ.

image

ライセンスキーは生成されているが,パネルに表示されているコードと一致していない.いや,これはそれでよいのかもしれない.ライセンスキーが生成されるのはデバッグモードのときだけだからだ.今度はバージョン情報も更新されているようだ.気になるのは画面が下の方で切れてしまっているという点だが…

image

スプラッシュのタイトルはMyForm.Info_Titleというところから引いている.MDIParent.vbで一括して定義しているところがある.ここを修正する必要がある.

▲ライセンスキーファイルがデスクトップ上にあると上書きされない.

リリース版をビルドしてバージョン番号を上げるときに必要な編集操作のリストを作っておこう.

  1. プロパティ画面でセットアッププロジェクト→Version をインクリメントしてProductCodeを更新する Titleのバージョン番号も更新しておく
  2. セットアッププロジェクト→プロパティ→Output file nameのmsiファイル名を更新する
  3. ライセンスヘッダファイルで※ライセンス番号※とバージョン文字列を更新する
  4. ※アプリをデバッグモードで起動し,ライセンスコードとライセンスキーを取得してヘッダファイルに書き込む※
  5. MDIParent.vbファイルでInfo_Releaseと※Info_LicenceCode※を更新する⇒これは多分不要
  6. Z.OCXとDLLのリソースでVersionを更新する
  7. VBのプロパティ→アプリケーション→アセンブリ情報の中身(ファイルバージョン)を更新する
  8. リリース版をビルドする
  9. ※は所内版の場合は不要

▲Info_ReleaseとInfo_LicenceCodeはDLLから取得できるのではないか?それ以外の情報もDLLから取得している可能性がある.

どうも現状ではアンインストールする以外にインストールを実施する方法がないように思える.Visual Studio 2005辺りからmsi形式のインストーラを生成するセットアッププロジェクト機能が廃止されている.その代わりにVisual Studio Installer Projectsというのが導入された.⇒いや,どうもこれは単純に「復活した」だけなのではないかという気がする.アイコンも同じ,内部の構成も同じだ.ネット上にこんな質問があった.この記事は参考になる.

RemovePreviousVersions=True but previous version is not removed from the target machine https://social.msdn.microsoft.com/Forums/ja-JP/9ce5da29-3f37-4e7f-a548-1cbeb4a3e0a3/removepreviousversionstrue-but-previous-version-is-not-removed-from-the-target-machine?forum=winformssetup

どうもVBのプロパティ→アプリケーション→アセンブリ情報の中身を更新する必要があったように思われる.この情報はEXEの右クリックで出るプロパティの内容と同じだ.⇒この情報を更新して少なくともProgram Files のEXEのプロパティは更新されているように思われる.ただし,ヘルプのライセンスコード・バージョン・リリース日付などは古いままだ.確かにEXEは18:23に生成されているが,それ以外のDLL,OCXの時間は1~5時間も前だ.EXEとGC3.DLLは開発環境と一致しているが,それ以外は更新されていない.GC3.DLLはファイルバージョンを持っていない.Z.OCXは2.1.0.1というバージョン番号を持っている.DLL3.DLLのファイルバージョンは1.9.9.99で製品バージョンは2.0.1.925だ.どこからこんな数字を拾ってきているのか?

ネット情報によると,セットアッププロジェクトのVersionではなく「ファイルバージョン」が新しい必要があるということのようなので,どこでこれらの値を設定しているかを突き止めなくてはならない.⇒それぞれのリソースの中にVersionという項目がある.⇒対処した.これで4主要コンポーネントはすべてアップデートできるようになった.この他にInterop.ZelkovaZ3Lib.dll,AxInterop.ZelkovaZ3Lib.dll,ZelkovaTree2021.exe.configがあるが,これらはインターフェースが変化しない限り変動はないと思われるのでとりあえずこれでよいということにしておく.configにはバージョン番号はないが,他の2つには3.0.0.0という番号が振られている.

パッケージの中に複数のコンポーネントが入っているときに個別のバージョン番号を見て新しくなければインストールしないという(VS2005以来の)現在の仕掛けはわたしには理解できない.仮に異同がなかったとしても単純に上書きすればよいというだけの話ではないのだろうか?誰がこんなつまらないことを考えたのか?面も見たくはないが…ネットに情報があったからよいが,もしそれを聞いていなかったら,まだまだ手間取って,こんな小石にさえつまづいていたかもしれない…

再開発版のバージョンを確定する

現在「再開発スタート版候補」として以下の4種が上がっている.

  1. ZELKOVA2019_2019-03-10★2.1.017 ほぼ最終版
  2. ZELKOVA2019_2019-08-09★2.1.020 最良版候補
  3. ZELKOVA2018_2019-08-14★2.0.2229 VS2017移行仕掛り版
  4. ZELKOVA_2020-10-12★2.1.012 現行仕掛り版

いずれもVS2017で開けることは確認してあるので,それぞれをビルドしてパフォーマンスを比較してみることにする.以下ではこれらをそれぞれ①ほぼ最終版,②最良版候補 ,③移行仕掛り版,④現行仕掛り版と呼ぶことにする.まず,①から試してみることにしよう.これはビルド日付が去年のわたしの誕生日に当たっているので幸先がよい.

ビルドできた.タモリんちは正規形で表示できている.⇒残念!バグが出ている.天皇家で「多重カード」が発生してしまった.かなり致命的というより最低だ.これは一応残して別の候補を見ることにしよう.②の最良版候補はどうだろう?⇒リリース版を作ってしまった.⇒天皇家は問題なく開けた.天智天皇から上が上方にY字に拡がっているというパターンだ.タモリんちも正規形で開ける.

もう少しテスト用サンプルを探さなくてはならない.テストキットのようなものがどこかに保存されていなくてはならないのだが…このサンプルキットそれ自体かなり貴重なものなのでどこかになくてはならないのだが,ちょっと見たところ見当たらない.デスクトップ 2020-02-11というフォルダがあった.多分これはこの時期デスクトップ上にあったサンプルを網羅していると思う.サンプルファイルだけで112,428本.まずい!この版(最良版候補)にも重大な欠陥がある.Ancestryがシンメトリックに描画できない!これはかなり由々しき事態だ.

image

軸線図ならこのような図式になる可能性もあるが,設定はデフォルトの軸線なしだ.これを「最良版」とみなすことはできない…③移行仕掛り版を見てみよう.⇒「”ADODB” のラッパー アセンブリが見つかりません。」が出た.プロジェクト→参照の追加でMADO 2.5 Libraryから6.1 Libraryに切り替えてエラーは解消した.いや,このエラーは通ったが別のエラーが噴き出してきた.エラーの一つのタイプは

error BC40000: ‘Public Function FontChangeSize(CurrentFont As Font, Size As Single) As Font’ は廃止されています: ‘Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?

というもので,もうひとつは

error BC30311: 型 ‘CheckBox()’ の値を ‘ISupportInitialize’ に変換できません。

というタイプのものだ.

error BC30451: ‘address_Leave’ は宣言されていません。アクセスできない保護レベルになっています。

というタイプのエラーもある.もう一つのタイプは

error BC30456: ‘Item’ は ‘TextBox()’ のメンバーではありません。

というものだ.ビルドのターゲットはAny CPUになっていたが,これをWIN32ないしx86に切り替えても同じだ.おそらくこの版では64ビット版への移行を狙っていたのではないかという気もするが,このシステムはアンマネージドなネイティブコードがベースになっているので64ビットにストレートに移行することは少なくとも現時点では現実的ではない.「オブジェクト配列の廃止」という修正がまだ収束していないということも考えられるが,それだけでもなさそうだ.他のパッケージと比較してここまで動作が変わるという理由がよくわからない.とりあえず,この版は再開発のコースからは一時的にであれ外すしかない.

現行仕掛り版の動作はすでに見ているが,一応再確認しておこう.⇒この版では天皇家も問題なく開ける.ややのけぞったような形態にはなっているが,本質的な問題ではない.タモリんちでバランスが崩れるというのが最大の問題だ.ここまでを整理すると:

  1. 2019-03-10★2.1.017 ほぼ最終版 天皇家で多重カード
  2. 2019-08-09★2.1.020 最良版候補 Ancestry.ZELが非対称
  3. 2019-08-14★2.0.2229 移行仕掛り版 ビルド不能
  4. 2020-10-12★2.1.012 現行仕掛り版 タモリんちでバランス不良

③の移行仕掛り版を弾くとすると残り3つになるが,多重カードが発生するというのはかなり致命的なので外すしかないのではないだろうか?残り2つはいずれもバランスの悪い図を描画するという欠陥があるが,どちらの問題も解決策がないという訳ではないので,どちらがより容易に対処可能か?ということになりそうだ.どちらかというとAncestryの非対称の方が扱い難いような気がするので,現行仕掛り版から始めるということになりそうだが,この版の出自をもう一度確認しておこう.もしかすると,この辺りの問題まで解決した版が出てくるかもしれない.

この版のベースはZELKOVA2019_2020-10-11という名前でバックアップしている.SetupのVersionで見ると2.1.010とあるので,3候補の中では一番古いものということになる.DLLのソースコードは2019/01/11修正が最終だ.バージョン番号から見ると,現行仕掛り版(1月11日)→ほぼ最終版(3月10日)→最良版候補(8月10日)ということになる.

ただし,ほぼ最終版と最良版候補はどこかで分岐しているようで,最良版候補は必ずしもほぼ最終版の継承にはなっていない.最良版候補には2019/02/06の修正が入っているのである意味でこれは「基準配偶者配置問題」の修正に入る前の版と考えられる.ほぼ最終版はある意味で間違った方向に進んでしまったと考えられるのでこの意味では

現行仕掛り版(1月11日)→最良版候補(2月6日,8月10日)

ということになるから,むしろ最良版の方がベターなのではないだろうか?最良版候補のベース版を見つけることができるだろうか?ZELKOVA2019_2019-02-10というのがある.その他にも2月26日~3月10日までの間には6個のパッケージが残っている.とりあえず,まず2019-02-10を試してみたい.このあと,2月26日まではかなり長い空白期間になっているのだが…ZELKOVA2019_2019-02-10を起こしてみたが,起動時にエラーが発生した.何が悪いのかよくわからない.⇒リビルドして解消した.この版でもAncestry非対称が起きている.

ZELKOVA2019_2019-02-26を見てみよう.⇒ほぼ同じだ.天皇家の多重は起きていないがAncestry非対称になる.このあと,3月10日のほぼ最終版までの間で天皇家多重が起きるようになるのだろう.次が2月27日でその次の3月5日まで若干の空白がある.ZELKOVA2019_2019-03-05を調べてみよう.⇒動作的にはまったく同じだ.あと残っているパッケージは3つしかない.一つづつ調べてみる.まず,真ん中のZELKOVA2019_2019-03-07から行ってみよう.

この版では天皇家で非連結になる.天皇家はほぼ一系列なので非連結になるというのはほとんど考えられないのだが…タモリんちは逆に完璧な理想形になっている.Ancestryはかなりひどい毀損状態になる.

image

ZELKOVA2019_2019-03-06も見ておくことにしよう.⇒状況は同じ.結局2019-03-05が屈折点になっているということになる.選択肢としては現行仕掛り版(1月11日)を取るか,ないし最良版候補(2月6日)~3月5日の間を取るということになりそうだ.あるいは,1月11日~2月6日の期間も対象になるのではないか?最良版候補に入っている8月10日の修正というのも気になるところだ.しかし,この日の修正をログから特定するのはかなり難しそうだ.むしろソースコードを比較してしまった方が早いかもしれない.1月11日~2月6日の期間はほぼ1日置きにパッケージが残っている.2019年2月のログを少し読み直してみよう.

2月は17日から仕事を開始しているが,かなりブランクを空けて26日までは大したことはやっていない.3月にはThunderBIrdの導入とサイトメンテナンスに焦点が移ってしまっている.「基準ノード配偶者近接配置」の件は片付いているのだろうか?言及がないところを見ると一応落着したと認定していたのではないだろうか?自分自身は仕掛りという意識でいたのだが…いずれにしてもここをすくい上げることができればほぼ最終版に近いものになると考えられるのでできる限り追求してみたい.バックアップを見ると仕事をしていなかった訳ではなさそうなので,ログで言及されていないということはほぼルーチン的な作業になっていたためではないだろうか?3月5日を過ぎると天皇家で不具合が発生し始めるのでやる気を喪失していたのかもしれない…

2月最後の記事は27日の「基準ノードの配偶者で多重が起きる問題」だが,そこで途絶した状態になっているのでおそらく解決しなかったと考えた方がよいのではないかと思う.2月はほとんど遊んでいたに等しいので,やはりこの修正は一旦戻した方がよいのではないだろうか?2月10日に「基準ノードの配偶者が枠外に出てしまう問題」に取り掛かっている.ある程度までは動作していたはずだが,SUWが出るのを抑えきれなかったというのが真相だろう.この修正をそのまま残してデバッグから入るか?それとももう一度一からやり直すのか?それが問題だ.可能な限り直近のバージョンを取るとすれば,3月5日のバックアップということになる.修正廃棄という方針なら2月6日(最良版候補)になるだろう.2019年1月の状況もチェックしておこう.タイトルを列挙すると:

  1. 2019/01/30 トライアングル関係BTWの導入で配偶者多重問題を解決する
  2. 2019/01/29 開発三種の神器の一つ「草薙のデバッグブレーク文」が復活した
  3. 2019/01/28 妻を奪われた残念な男がせめて家系図上で妻を取り戻すには
  4. 2019/01/27 「家内婚は左手本人の預かり」という仕様変更が収束しない
  5. 2019/01/25 「家内婚は左手本人預かりとする」という仕様変更
  6. 2019/01/24 INT 3→NOPの現象が一時止まったがまた元の状態に
  7. 2019/01/22 int 3 のブレークポイントがNOPに書き換えられてしまう
  8. 2019/01/21 15点という小さいサンプルで障害が発生している

のような感じでそれほどトリビアルとは言えない問題に対処しているので温存するのが妥当だろう.これを見ると1月28日頃からすでに「配偶者近接問題」に関わっていたことがわかる.この修正を撤回するということもあり得ないのでむしろ中断したところからデバッグするという方が現実的なのではないだろうか?とすると,再開発開始版は2019年3月5日版ということになるはずだ.もう一度この版をチェックしてみよう.3月6日版を起こしてしまった.この版ではAncestryが完全に壊れてしまう.いや,おかしい.3月5日版でもシンメトリが崩れている.

いや,この辺りでは常態としてAncestry非対称が起きている.むしろ,天皇家で垂線がぶつぶつに切れるというのが目立つ.もう少しましな版はなかったろうか?最良版候補(2月6日,8月10日)をもう一度見てみよう.2月6日なら配偶者近接の修正も導入されているのではないか?⇒同じだ.どうせ同じなら日付が近いものの方がよいのではないだろうか?2月6日版のオリジナルを見てみよう.手元の2月10日版を見ることにする.⇒ダメだ.この版では例外が発生する.2月26日版でも状況はほぼ同じ.つまり,Ancestry非対称,天皇家で垂線切れだ.⇒例外の発生はエラーではなくカスペルスキーが実行をブロックしたためと思われる.天皇家で垂線が切れるという事象は現行仕掛り版(1月11日)でも見られるので相当前から発生していたものと見られる.これは独自にデバッグする必要があり,版の選定では無視してよい.

となると,最後の決め手は天皇家でY字型の空白部ができることを許容するか否かという問題に絞り込まれるように思われる.現行仕掛り版ではかなりコンパクトというか,おそらくこれ以上は無理と思われる程度にコンパクトになっているが,1月~2月のどこかで拡がるようになってしまったのではないかと思われる.現行仕掛り版のコンパクトな配置はTYWの作用によるものと思われるので,どこかでその効果を減殺するような論理が組み込まれたのではないかと思う.どこでこの差異が発生するようになったかは突き止めておきたい.

修正が入ったとすれば1月11日から2月10日までの期間と推定される.まず,ZELKOVA2019_2019-01-20から見てみよう.この版ではAncestryは対称,天皇家はまだコンパクトだ.1/30を見てみよう.この版ではAncestryは対称,タモリんちもバランスよく,天皇家もコンパクトという非の打ちどころのない仕上がりになっている.2/4を見てみよう.2/4版では天皇家で「先行系列との接続関係確立に再び失敗」という障害が発生する.このエラーは他のサンプルでも起きる.描画は可能なのでこの時点で初めて設置されたトラップである可能性もある.2/6には問題は起きていない.2/7でAncestryのシンメトリが崩れる.同時に天皇家でも上が開くようになる.これはおそらく同一の機序によるものと考えてよいだろう.2/6と2/7の間に2つパッケージがあるが,いずれも同じ.

結局,2/6というパッケージは2019/02/06の始業時バックアップなのでその後の修正で不具合が紛れ込んだという結論になる.これは何を目的とした修正だったのか?

この日の修正は「冷泉院の切り替え」という問題だが,その内容がよくわからない.2/5のログなく,2/4は「系列優先実ノードが隠蔽リスト上にあるという問題」というタイトルになっている.「冷泉院」の名前は出てこないが,関連した問題である可能性はある.いや,多分関わりはないと思われる.この日の対象サンプルはN一族で「N一族家系図に取り組み初めてすでに3ヶ月経過したが,途中に大きなブランクが生じたためまだ収束にはほど遠い状況で足踏みしている.」という書き込みがある.その後に同じ日付でもう1本ある.こちらが本当の2/4だろう.

課題はやはり,「隠蔽された系列優先実ノードが出現する」という問題だ.系列が優先ノードのBTWで結合されているときには,どちらかのノードは消去されていなくてはならない.このとき,「[系列枠]: #806 優先=桐壷の更衣(0)の優先ノードは桐壷の更衣.桐壷院が基準ノード承香殿女御(朱雀院の)の配偶者であるため,桐壷院+桐壷の更衣の結婚は桐壷の更衣の系列で展開されている.このため桐壷の更衣の仮ノードは1個しか存在しないので系列優先ノードを桐壷院に切り替える必要がある.エラーを無視して描画した場合には冷泉院に切り替わっているが,実仮ノードで世代差が発生している.」というストーリーなのだが…

対策としては「RIBEBOX::decidePrimaryNodeで優先仮ノードを決定する時点で優先実ノードの存在を確認するようにした.このためにGetRealnode(NAMEBOX*)という関数を新設した.優先実仮ノードの対が得られないときはGetAlternativePrimeNodeが実行され,優先仮ノードの切り替えを実施する.これで桐壷の更衣から桐壷院に切り替えることができたが最終的には冷泉院に切り替わる.」としている.図面を見てもよく飲み込めないが,ともかくそのような問題があったとされる.

2/6にはまず,NODULE::IsAliveという関数が間違っているとして修正し,さらに多分PairBoxGeneChangeを修正してエラーが解消したとしている.ここでリリース版を起こしているのでその存在を確認してみよう.少なくとも公式版ないし安定版としては存在していない.2/6-1が2.1.0.016で2/6-2が2.1.0.017に変わっているのでこの間でリリース版を起こしていると考えられるが,不具合はすでに2/6-1で発生している.

2/6のログには『「基準ノードの配偶者は基準ノードに近接配置」という原則が崩れている』という記述があり,2/4には「N一族家系図に取り組み初めてすでに3ヶ月経過」ともあるので,2018年の末頃にはすでにこのテーマに取り組み始めていたものと推定される.従って,Ancestry非対称と天皇家の弛緩はこのテーマとは直接関わりがない可能性が高い.

2/6版と2/6-1版の差異はソースファイルを直接比較するのが一番早いと思う.いずれにしてもそこから先は「デバッグ」の領域に入ってしまうと思われるのでここでは扱わないことにする.とりあえず,今日のところは2019-02-06まで戻るということで確定ということにしておこう.

ようやくビルドが始まった

Build Tools for Visual Studio 2017 (version 15.9)というのをマイクロソフトサイトからダウンロードしてインストールした.ついでにVisual Studio 2017 Community も更新した.この「プラットフォームツールセット」にはv141というバージョンしか入っていないので,すべてのプロジェクトのプロパティでプラットフォームツールセットをv141に書き換えた.これでようやくビルドを開始することができた.

ZelkovaDLLに入っているすべてのCPPファイルはエラーなしでコンパイラを通ったが,以下のエラーが出ている.

>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2729,5): warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外:0x8002801D (TYPE_E_LIBNOTREGISTERED))

ZelkovaGCのビルドは完了している模様だ.ZelkovaZはレジストリ登録に失敗している.これはおそらく権限の問題と思われるのでIDEを管理者権限で起動すれば解決する.ZelkovaVBのビルドはOCXが登録されていないため失敗に終わった.VSを管理者権限で再起動して試してみよう.「ビルド: 3 正常終了、1 失敗、0 更新不要、1 スキップ」という結果に終わった.エラーは0,警告7が出ている.VBで「参照コンポーネント ‘ADODB’ が見つかりませんでした」という警告が出ている.付随して

タイプ ライブラリ “ADODB” のラッパー アセンブリが見つかりません。次のことを確認してください。(1) COM コンポーネントが正しく登録されている。(2) ターゲット プラットフォームのビットが COM コンポーネントと同じである。たとえば、COM コンポーネントが 32 ビットの場合、64 ビットのターゲット プラットフォームは使用できません。 

  とあるのでOCXが登録されていないのではないだろうか?いや,出力から見ると登録は完了しているように思われる.DLL,GC,Zの3つのコンポーネントはすべてWin32でビルドされているが,VBにはAny CPUという選択肢しかない.VBのプロパティではターゲットCPUはx86になっている.VBのプロパティ→参照には「ゼルコバの木系図エンジン for WIN32」というのが入っている.この名前はZelkovaZ.idlファイルの helpstring として定義されている.Form1.vbが開けないので参照関係が通っていないことは間違いない.一度ここまでのところをバックアップしてから考えることにしよう.

VBの参照マネージャーで見ると系図エンジン for WIN32のバージョンは3.0となっている.これを3.1に変えてもう一度ビルドしてみよう.参照マネージャーには3.1が現れたが,3.0も残っている.この2つは連動していて,3.0のチェックを外すと3.1のチェックも落ちてしまう.(これはおそらく同じuuidを使っているためと思われる)VBのプロパティ→参照には3.1が入っている.「ツールボックスアイテムの選択」パネルには「Zelkova コントロール」の名前で表示される.このアイテムを選択し,一度削除して追加し直したForm1.vbに貼り込むと枠が表示された.ソリューションをリビルドしてみよう.

動作がかなりおかしい.ビルドが終了した途端にVSが再起動されてしまう.ビルド時に「 warning : パス ‘d:\zelkova\debug\zelkovadll3.dll’ へのアクセスが拒否されました。」という警告が出ている.ビルド完了までは進んでいるが,マウスを動かしただけで再起動になってしまうようだ.debugフォルダの中を手操作で空にしてから再起動→リビルドで正常動作に戻ったが,VBのビルドには失敗している.⇒おかしい.今度はツールボックスが空っぽになっている.⇒このボックスの中身はVBファイルを選択したときしか表示されない.

「タイプ ライブラリ “ADODB” のラッパー アセンブリが見つかりません」というエラーが出ている.ADODBというのはMicrosoft ActiveX Data Objects のことと思われるが,現行ではVBからADO 2.5 Libraryというコンポーネントが参照されている.このライブラリには複数のバージョンがあるので,バージョンの不整合でエラーになっている可能性が考えられる.⇒試みに最新の6.1 Libraryを参照するように設定変更してみたところ,エラーは解消してビルドできるようになった.⇒実行もできた.ひとまず難所は越えることができた.

ランニングテスト用のサンプルが必要だ.⇒まず,添付ファイルを開いてみることにしよう.懐かしい図面が出てきた.これが出せなければゼルコバの木の立つ瀬はない.日本の系図文書にはあまり出てこないが,西欧の系図にはよく見られるパターンだ.これを無条件で描画できる系図ソフトはまだないのではないかと思う.

image

親族呼称図:本人から上流と下流のそれぞれにつき4親等まで表示した図.

image

タモリさんちの超複雑な家系も理想形で表示できている.

image

天皇家系図を開いてみよう.

image

仁徳天皇系と雄略天皇系の間に広いギャップがあるが,下流ではタイトになっているのでこれでよいのだと思う.一つ描画上の欠陥がある.

▲大草香皇子の頭部に父仁徳天皇からの(垂直)連結線が入っていない.仁徳天皇からは曲がって草香幡梭皇女に垂線が下りているのでレンダリングに抜けがあるのだろう.

一応動作するバージョンを確定することができた.ともかく何かやり損なう前にバックアップを取っておこう.

いや,これは開発環境のEXEではなくインストールされた版かもしれない.昨日はインストールされたバージョンはないと書いたが,プログラムと機能を見ると2019/08/10にインストールした2.1.0.020というのがある.ZELファイルのアイコンを叩いて開いているから,起動したのはこの版だ.開発環境上にあるのは2.1.0.010でこの版よりはかなり古い.リリース日付は2019/01/11.確かにこの版ではタモリんちも少し偏芯した図になってしまう.天皇家ではもっと露骨にあちこちで垂線が途切れるような欠陥が露呈している.ともかく,ここから出発だ.

▲アプリ終了時に若干のメモリリークが検出されている.

GCとZではインクリメンタルリンクがオフになっている.そうなっている理由はよくわからないが,オンに切り替えておこう.

ZelkovaCtrl.cppのコンパイルで以下のエラーが出ている.「ネイティブ関数としてコンパイルされました 非 clrcall 仮想呼び出しサンクは、ネイティブとしてコンパイルする必要があります」

ZelkovaZのプロパティでは/clrオプション(共通ランタイムサポートを使用する)が設定されているが,MESSAGE_MAPとDISPATCH_MAPには仮想関数が含まれるためネイティブとしてコンパイルされているように思われる.共通言語ランタイムサポートプロパティを変更して「使用しない」とすればこのようなエラーは解消する.この設定変更を行っても動作には変化はないように思われるので,暫定的にこれで進めてみることにする.⇒おかしい.警告C4793は止まっていない.止まったと思っていたが,勘違いだったのだろうか?設定は戻しておこう.

これまでは感じなかったが,コンパイルがやけに遅く感じる.もっと速いマシンが欲しくなった.incredibuildという分散処理が導入されているようだが,使えるだろうか?なんとこれはイスラエル発のソリューションだ!無料というのは評価版の話で製品版14万円もする…

ビルドメニューにソリューションでコード分析を実行というコマンドがあるので使ってみた.すべてVBに関するものだが100個以上のエラーが出た.直ちに対処するのはちょっと難しそうなので保留とする.リリース版もビルドできたが,ちょっと気になるWARNINGが出ている.

WARNING: カルチャ ‘ja-JP’ を項目 ‘Visual C++ “14” Runtime Libraries (x86)’ に対して一致できませんでした。カルチャ ‘en’ を使用します。

VS2017をダウンロードしたとき英語版をインストールしてしまったのだろうか?もちろんメニューその他の文字列が英語になってしまうという訳ではないのだが,何か不都合があるだろうか?ツール→オプション→国際対応の設定は日本語になっている…カルチャというのは日付の表記などに影響しそうだが…msiができているのでともかくインストールしてみよう.アンインストールしないで実行してみる.おかしい.元のアプリが立ち上がってきた.アイコンは確かにいま作られたものだが,参照しているEXEの位置がわからない.ZELKOVA TREE 2019が2つ作られている.アプリの更新手順を踏まなかったかもしれない.バージョンを上げてProductCodeを更新する必要がある.今度はできたようだ.

さて,これで一応の出発点は固まったところだが,バージョンの関係を少し考えておく必要がある.インストールされていた版は2019/08/10リリースの2.1.0.020で,現在手元にあるのは2019/01/11リリースの2.1.0.010だ.内容的にもかなりできが悪い.

ZELKOVA_2020にZELKOVA 2020 仕掛りというのがあるので試してみたい.いや,この日付は2019/01/17だからさほど新しいものではない.2019年8月のパッケージはいくつかあるが,インストーラまで進んだ形跡がない.公式リリース版の最新は2018-07-13だからかなり古い.これで見るとインストールされていた2019/08/10リリースの2.1.0.020がとりあえず最上なのではないだろうか?DドライブにZELKOVA2019_2019-08-09というパッケージがあり,ここに入っているのはおそらく2.1.0.020と合致するものと思われる.

2019-08-10のログは「最新の安定版を確保する」というタイトルで安定版とされているのは①V2.0.2.229_R2018-10-07と②V2.0.1.978_R2018-03-30だ.8月10日というログは2本ある.うち,1本は9日の分と思われる.この日は2019-02-07の安定版候補をビルドしている模様だ.ただし,障害サンプル集のオープンテストでSUWが出ている.描画上のゴミも出ているとされる.

このフォルダに入っているZelkovaTreeSetup.2.1.0.020.msiをインストールしてみることにしよう.ダメだ.開けない.

image

VS2017への移行は10日より後に実行されているので,おそらくVS2005ないしVS2015でビルドされたものだろう.であるとすればVS2017への変換を施したバージョンは現行のものしかないということになるのではないだろうか?現行版はDLLのソースファイルで見ると2019-01-11が最終修正日であるように思われる.一方,2.1.0.020の方は2019/08/10に2本修正が入っている他は,2019/02/06が最終日となっている.2018/02/10には「規準Nodeの配偶者が枠外に出てしまう問題」に掛かっているのでこの日付が後戻りできる限界線であるとすれば,かなりそれに肉薄しているということになり,これを採用することは許容できるように思われる.

VS2017への移行で一番問題になるのはおそらくVBのモジュールと考えられるのでその部分だけを最新版で差し替えるということも考えられるのではないだろうか?VBのコードはほとんどサービス機能に関わっているのでデバッグによる修正はほとんど入っていないと見てもよいのではないかという気がする.いや,日付で見るとそうも言えないような感じになっている.CardBox.vbの修正はどちらも2019/01/07だ.どうもわからなくなってきた.

「オブジェクト配列を廃止してオブジェクトの配列に切り替える」は2019/08/14近辺のはずなのだが…確かにZELKOVA2018_2019-08-14辺りになるとその辺りの修正が入っている気配がある.明らかに現行版にはこの修正は入っていない.つまり,VB6のコードがまだ残っている.しかし,ここまで来るのにそのことはまったく問題にならなかった.どういうことだろう?もし使えるのならオブジェクト配列の方がずっと使い勝手がよいことは確かだ.マイクロソフトが方針変更して対応修正しているのだろうか?デザイン画面下部のアイコンもデザインが変わっているので対応が変化したということは考えられる.

もしそうであるとすれば,ともかく最新の版を選んでポーティング可能だということになるのではないか?この時期で言えば最終ログは2019-03-09で規準Nodeの配偶者の問題に掛かる2018/02/10だから,この間に残っているパッケージが最新ということになる.仮に2018/02/10まで戻ったとしても,最新版が2019/03/09なのだからその間1ヶ月ということになり,なんとかなりそうな気がする.であるとすれば,この時期にamory氏に送った版がなくてはならないのだが…それが2.1.0.020ということだろうか?

amory氏とのやり取りはメールが残っているはずだからチェックしてみよう.メールに添付してファイルを送ったのは2018/03/07が最終だ.2018/11/20にはネットが復活しているが,そのあとmicroSDで送っていたのではなかったろうか?microSDは封書で送られてきているはずだが,見当たらない.2019/08/03のメールでは「V2.0.0.321、V2.0.0.325、V2.0.0.325、V2.0.1.870を保管しているが起動するとエラーが起きる」となっている.この差し替えは送れなかったのだろうか?2018年の歳末には「まだバグが残っているので「暫定版」を年内にお送りするのも難しいかもしれません.」と書いていて明くる2019年の3月で開発は実質停止してしまうので,送れなかったのかもしれない…

とすれば,やはり2019/08/10リリースの2.1.0.020が最良ということになるのかもしれない.これは実質的には2019/02/06が最終日だ.それより新しいものがあるかどうか探してみよう.これより新しいものは見当たらない.これは多分ZELKOVA2019_2019-08-09と同じと思われる.それより少し古いものとしてZelkovaTreeSetup.2.1.0.017.msiというのがある.開発用パッケージではZELKOVA2019_2019-03-10が最終と思われる.これが動けば内容的には2.1.0.020より新しい可能性もあるが…もう一つ取り上げるとしたら,ZELKOVA2018_2019-08-14だが…これは2015から2017への移行作業途上の仕掛り版だ.この版のベースのバージョンを知りたいのだが…⇒ベースバージョンは2.0.2229と思われる.V2.0.2.229_R2018-10-07というのは残っているが,R2018-10-07では少し古過ぎる.

安定版として保存されている最終版はV2.0.2.143 R2018-08-18だ.本来なら作業したすべての日付のバックアップが残っているはずなのだが,ディスクが逼迫してきたため大胆に整理してしまったのでこれだけしか残っていない.結論的には「再開発スタート版候補」は以下の3通りということになりそうだ.いや,現行版を入れれば4種かもしれない.

  1. ZELKOVA2019_2019-03-10★2.1.017 ほぼ最終版
  2. ZELKOVA2019_2019-08-09★2.1.020 最良版候補
  3. ZELKOVA2018_2019-08-14★2.0.2229 VS2017移行仕掛り版
  4. ZELKOVA_2020-10-12★2.1.012 現行仕掛り版

いずれの版もVS2017で問題なく開ける.ただし,ビルドはまだ試していない.

グーグルドライブへの画像アップロードは一晩掛かっても完了しなかった

昨日スマホからグーグルドライブにアップロードした画像は一晩掛かっても完了しなかったが,どうも原因は通信速度ではなくWiFiに接続していたためではないかと思われる.USB接続だけの状態では同じ画像をそれほど時間も掛けずアップロードすることができた.20~30秒くらいは掛かるのであまり速いとは言えないが,許容範囲だろう.PC側でUSBテザリングとWiFiが併用できない場合がたまに生じるが多分手順の問題なのではないかと思われる.一旦接続できれば安定してテザリングによるインターネットアクセスと所内WIFIによるマウス共有を実現できる.⇒いや,やはりダメだ.どういう拍子にかうまくゆく場合もあるのだが…

USB接続は放っておいてもWiFiのオン・オフだけで切り替えできるのでそのたびに切り替えるしかないのではないか?かなり厄介だがいまのところそれしか方法がない.いや,やはり使える.先にWiFi接続しておいて,事後にUSBテザリングを起こすという手順が有効なようだ.PC側で測定して始業時には13Kbpsしか出ていなかったが,いま(AM 9:16)測ったら260Kbpsまで上がっていた.このくらいあればなんとかなる.

image

このくらいの画像↑のアップ/ダウンロードもほぼ瞬時で終わる.かなりいい感じだ.これなら使いものになるのではないか?⇒メイン機につないでいたキーボードをタブレットに繋ぎ変えていつでもアクセスできるようにしてみた.マウス共有が死んでいるときにはノートのキーボードを使えばよい.これで正面のワイドスクリーンに向かってつねに外付けキーボードが使えるようになった.タッチパッドでカーソルをメインスクリーンに移動すれば使えるようにはなっていたが,いちいちそれをするのも結構面倒だ.

インターネットアクセスのないポケットWiFiルーターを使って作業を進めることが可能であることが確認できれば,11月のWIMAX2+の解約も安心して実行できる.その上で電話番号をMNPで(楽天モバイル)から取り戻すことができればすべてが整理できたことになる.その際にはおそらくUQとの契約もプランS(1980円/月,3GB/月)からプランR(2980円,10GB/月)に格上げすることになるだろう.プランRでは容量を使い切ったあとの低速モードでも1Mbps出るというところが魅力だ.現状はプランSの最大300Kbpsだからかなり改善されると思う.

おそらく,通常は1Mbpsの低速モードで節約しておいて,サイトへのアップロードやバックアップなどのときだけ,バーストモードでアクセスするというようになるのではないかと思う.

さて,これで一応環境は整ったと言えるのではないだろうか?次の課題は開発環境を立ち上げてともかく動くバージョンを確保するということになる.サイトのメンテナンスはとりあえず凍結して先に進むしかない.現在構築中の環境はVisual Studio 2017だが,もっと新しいバージョンはあるのだろうか?確かに存在する.Visual Studio 2019というのがすでに出ている.しかし,無料ではない.VS 2019 Proは6万4千円もする.サブスクリプションを付ければさらに15万4千円も掛かる.ただし,VS CommunityとVS Codeは無料で入手できる.実際手元のVS 2017は無料のCommunity版だ.

開発環境としては無料のVS 2019 Communityでよいとして,いきなりこのバージョンに移行できるだろうか?開発環境にはVS 2015はインストールされている.ここまではすでに移行してきているはずなので,まず,この環境でまともに動作することを確認するというのが第一歩なのではないだろうか?以前のログを読んでみないとわからないが,すでにVS 2017への移行ステップに移っているはずだが,その辺りはもう一度やり直した方がよいのではないかと思う.

どうもまだ問題がある.スマホでYouTubeが再生できない.

image

USBテザリングや画像のアップロードはできているのでネットには接続している.これまではこんなことは起きていなかったのだから,「データ通信」モードだからという訳ではないと思われるが,低速になっていることは確かなのでそれが原因と思われる.PCで動画が見られる必要は必ずしもないが,スマホでYouTubeが見れなくなるというのはかなり致命的だ.散歩に出るときつねに英語教材を流し放しにしているからだ.しかし,おかしなことにPCでは遅いながらもYouTubeは開けるし,たとえば音楽ビデオを流すこともできる…

RakutenのSIMがあるので試してみよう.どうもおかしい.同じ画面になってしまう.Rakutenモバイルでスマホをルーターなしに持ち出したことはたびたびあるはずだ.ここはパートナー回線で上限は5GBだがまだまったく使っていないので丸々残っている.データ高速モードだから速度制限は掛かっていない.⇒WIMAX2に接続すれば容易にアクセスできるが,その後WiFiを切ってデータ通信に切り替えても接続できる.Rakutenを低速モードに切り替えてもパフォーマンスはほとんど変わらない.WIMAX2が使えなくなったときにリカバーできるかどうかはわからないが,原理的には何らかの方法で可能なはずだ.

さて,いよいよ本腰を入れて仕事に掛かることにしよう.Dドライブには「開発用」という名前が付いている.この中のZELKOVAが仕掛りの仕事場になっていたはずだ.どうなっているのか?覗いてみることにしよう.VS2017を開くと下図のパネルが出た.

image

サインインするには一時的にもネットに接続しなくてはならない.VS2015を開いてみよう.こちらは開けたが警告が7つ出ている.

image

エラーは出ていない.上記パネルの「出力」タブをクリックすると下のエラーが出た.

image

「最近使ったプロジェクトとソリューション」はD:\ZELKOVA\ZelkovaTree.slnになっているのでここで作業していたのは間違いないだろう.バックアップは取ってあるので,クリーンビルドし直してみよう.エラーが出てビルドが進まない.もしかするとこのビルドはすでにVS2017に移行してしまっているのかもしれない.2020/03/30頃のビルドが最終と思われるのでこの辺りのログを探してみよう.いや,まだこの頃はサイトのメンテをやっているところだ.開発が止まったのは2019年の8月だ.2019/08/14というのがこの時期の最終ログだが,以下で終わっている.

午前11時起床,雨.9時ごろから雷鳴を伴う豪雨になっていたが,一時休憩に入ったようだ.朝食は抜き.VS2005からVS2017の変換がなかなか収束しない.対処したところも暫定対策で本格的に稼働するまでには相当な紆余曲折が予想される.ともかく一歩づつ進むしかない.

VS2005からVS2017への変換では「オブジェクト配列を廃止してオブジェクトの配列に切り替える」というのをやっている.これはかなり大掛かりな修正だ.「VS2005からVS2017への変換」となっているので,VS2015を飛ばしてVS2005からいきなりVS2017にジャンプしているのだろうか?2019/08/10には「最新の安定版を確保する」というタイトルが付いている.読んでみよう.「昨日から[遠近両用を使わずに]ダイソーのメガネを使っている」とあるので少し視力が落ちていたのだろうか?いまは「遠近両用」を使っているが,とりあえず問題ない.

ある時点ですでにVS2015に移行しているようだが,VS2015とVS2017にはかなりの隔たりがある.「VS2017ではプロジェクトごとにインクルードパスを切る」ことになっている.ここではVS2017への移行を試しているようだが,かなりのエラーが発生している.「コンパイラーの構文検査が厳格になり,同一名の局所変数が使えない」という問題もある.「2019/01/06のログにVS2010試供版をインストール」とあるが,このときも大量のエラーに悩まされたようだ.

この時期はメイン開発機のlenovoノートがつぶれてDiginnosノートに移行していた時期のようだ.おまけに踵を骨折して整形外科に通っている.メガネの度数が合わなくて数字の読み違いなども起きていた模様.2019/08/04には「amory氏から V2.0.1.870 がインストールできないというレポートが送られてきた.OCXの登録に失敗している.開発用マシンでも同じ現象が起きる.」とある.この頃には自分のマイクロソフトアカウントが1ヶ月間も使えなくなるという事故も起きている.実際には(復旧するまでに)半年以上ブランクがあった.このときは2019年8月1日に仕事に復帰して8月14日にはあえなく潰れている.そのあと,気を取り直して2020年2月から仕事に戻っているが,ユーザ会サイトの復元を試みて挫折,2ヶ月後には再び作業中断状態に戻ってしまった.

今回はもちろんこれが最後のチャンスとなるだろう.これを乗り切ることができなければすべては水泡に帰することになる.パワーはまだ残っている.視力も案じていたほどには衰えていない.去年の8月頃には使えないと思った「遠近両用」でも問題なく仕事できるレベルだ.ともかく,バグがあろうがなかろうが,ビルドしてインストール可能な版を立てなくてはならない.いまのところ開発機にはインストールされた版は存在しない.Kamui氏からもこの時期に「インストールできない」というクレームが入っていたはずなのだが…

以前はたとえばXPや場合によってはそれ以前のバージョンのWindowsでも走らせるということを目標にしていた時期もあったが,もはや遠いユメだ.こうなったらとりあえず,ターゲットはWindows 10に絞るしかない.Windows 10 搭載機はおそらくほとんど64ビット機と考えられるので64ビットWindows 10 (最新版)搭載機で走らせるというのが最低限の目標ということになるだろう.Windows 10 搭載機には32ビット機というのもありそうだが,それはまた別途とするしかない.

2019/08/11には「最新の安定版と思われるV2.0.2.229_R2018-10-07をVS2017に移植」とある.2018/02/10には「規準Nodeの配偶者が枠外に出てしまう問題」に掛かっているが,この版はそれよりは新しい.最終版にかなり近いものと考えてよいのではないだろうか?これはZELKOVA2018フォルダに入っているものでVS2015でビルドしたものと想定される.現行のZELKOVAはそれをVS2017でコンパイルしたものと考えられるので,ここから出発するしかないのではないだろうか?つまり,2019/08/13で中断したところから再開するということになる.

マイクロソフトにサインインするためには開発機をネットに出さなくてはならない.USBではなくBluetoothでつないでみる.⇒ButcherBirdデバイスが2つできてしまった.⇒Bluetoothデバイスとケータイ端末だ.BluetoothテザリングはWiFiと併用できないので,また厄介なことになってしまう.それよりは,一時的にUSBを差し替えるという方が早いのではないか?⇒どうもうまくゆかない.WiFiを切断してやれば接続できるのだが…⇒入ってきた.接続してから動作するまでに若干の時間が掛かるのかもしれない…タブレットとメイン機が同時にネットアクセスできる必要はないので,これでよしとしておこう.⇒サインインできない.

image

いや,画面上の表示は「ライセンスを正常に更新しました」のように変わっている.通ったようだ.これでネットアクセスがなくてもVS2017を起動できるようになったと思う.やはり同じエラーが出ている.

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(67,5): error MSB8020: v142 (プラットフォーム ツールセット = ‘v142’) のビルド ツールが見つかりません。v142 ビルド ツールを使用してビルドするには、v142 ビルド ツールをインストールしてください。または、[プロジェクト] メニューを選択するかソリューションを右クリックし [ソリューションの再ターゲット] を選択して、現在の Visual Studio Tools にアップグレードすることもできます。

プロジェクト→ソリューションの再ターゲットでは以下の選択肢しか出てこない.

image

v142という「プラットフォームツールセット」があるようなのだが,インストールされていない.Build Tools for Visual Studio 2017 (version 15.9)というのをダウンロードしてみる.75.3MBある.かなり掛かりそうだが,そのうち終わるだろう.これはダウンロードとインストールを一括実行するので別マシンでダウンロードすることはできない.

my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=o~msft~vscom~older-downloads

現在の通信速度はメイン機で510Kbpsだ.これは公称1Mbpsの実効速度だが,この速度に慣れるしかないだろう.このビルドツールに入っているのはV141だ.VS2017の更新もあるようなので入れておくことにしよう.ビルドツールだけで382MBもある.何分掛かるだろう?ようやく終わった.多分30分はオーバーしているだろう.VS2017の更新だけで3.78GBもある!

多少遅いのは仕方ないが,ここまで掛かると…これまでの流れと逆向きにWIMAX2+を活かして楽天を1年間の無料期間一杯まで使うというオプションも考えられるのではないだろうか?UQはいつでも解約できるのでこの方式ならUQを単純に解約するというだけだ.もちろん電話は使えないが,都内なら使える可能性もあるし,電話なしでどこまで不便か?のテストにはなる.⇒これでは朝まで掛かりそうなので,一時停止してルーターに切り替えてみよう.⇒さすがに速い.これまでは100KB/秒というところが瞬間的には2MB/秒を超えることもある.

USBテザリングを使うというのがよさそうだ

雨も止んだようだ.スダレを取り込んで厚地のカーテンに替えた.去年は一度も履かずに過ごしたのだが,どうも足元が冷たいので厚手の靴下を出して2枚履きにし,スリッパももこもこスリッパに替えた.それでもまだ寒いのでセーターを着込み,(ヘルメットの下に付ける汗取り用)キャップまで被った.

WIMAX2+は11月11日まで使うことにしているのでいまのところはまだルーターも使える状態にはなっているが,スマホの方が3GBを超えて低速モードに入ってきたのでパフォーマンスを見るためにWIMAX2+を外してスマホからテザリングで受けるようにしてみた.契約切れのポケットWIFIがあるのでこれを所内無線LAN用に使い,スマホからUSBでテザリングしてみた.BluetoothとWiFiでは取り合いになってしまうが,USBテザリングなら併用できるのではなはだ都合がいい.

所内WiFiはファイル共有およびマウスとキーボードの共有に使う.ビデオ切替器は3チャンネルまでつなぐことができるのでワイドスクリーンも共有できる.これで万全の体制が整ったと言えそうだ.ThunderBirdのフィルタも完全に動作するようになっているのでもう怖いものなしという感じになってきた.スマホのカメラで撮影した画像はグーグルフォトでアップロードしてPCに移すことにした.

ダメだ!アップロードに失敗してしまった.⇒グーグルドライブを使ってみよう.⇒保留になってしまったようだ.アップロードではWiFiが使えることが前提になっているようだ.現在はUQの低速モードで最大でも300Kbpsという設定になっている.グーグルドライブの設定で「データ使用量」という項目が「Wi-Fi経由でのみファイルを転送」になっていた.グーグルフォトでは「モバイルデータ通信でバックアップできません」となっているようだ.グーグルドライブでアップロードを始めたがとんでもない時間が掛かりそうだ…

所内WiFiには接続できたが,PCにログインできない.ルーターを使っているときはこんなところでこんなに時間が掛かったりはしていない.やはり,この構成は使い物にならないのだろうか?

WIMAX2をいま解約すると19,000円の解約料が発生してしまう

涼しくなってきたので扇風機を天袋に片付けた.サイクリングに出てみたもののポツポツ降り出して来たので切り上げて帰る.姉はやっぱり(スマホは)いらないというのでいろいろ考えた末,わたしの方もミニマリストでゆくことにしよう.つまり,現行のWIMAX2ルーターを廃止しスマホは手元のSIMをそのまま使い続ける,言い換えれば月額1,980円のスマホプランS(3GBを超えると300Kbps)でゆくことにした.普段は常時低速モードにしておいて,いざというとき(サイトの更新・バックアップなど)だけ高速に切り替えるというやり方でなんとかなるのではないか?300Kbpsというのは公称で実際には20Kbpsを切ることもあるが,動画はスマホでしか見ないようにすればそれほど影響はないのではないかと思う.

WIFI ルーターはWIMAX2 定額プランS(3年)という契約になっているので,契約解除料(19,000円)が発生してしまう.ただし,契約期間が満了しても解除料がゼロ円になるのは更新当月に限られていて,それ以外の月では9,500円掛かる.これは2年~3年までの期間の解除料と同じなので今年の11月14日(3年目)を待って解約することにした.電話番号をどうするか?前の電話番号を捨てることにするのなら,楽天UN-LIMITの契約を解除すれば済むことだ.しかもこれは「一年間無料」ということになっているのだから特に急ぐ話でもない.電話番号を引き継ぐとするといろいろな手間が発生する.

まず,楽天モバイルから「予約番号」というのを発行してもらう必要がある.次にUQモバイルで現在の契約を解除してから,改めて新規にSIMを発行してもらわなくてはならない.UQでは2019年10月1日より提供開始の「スマホプラン」には契約期間・契約解除料はないということなので,余分な費用な「予約番号の発行」くらいで済む.ここで,どうせ契約変更するのならスマホプランSからRに格上げすることも考えられる.スマホプランRは基本容量が10GBで,それを超えたときでも1MbpsということになっているのでプランSよりは格段に条件がよい.ルーターを使わずスマホのデザリングで済ませるのだとすれば,+1000円くらいは見てもよいのではないか?

11月14日まであと2ヶ月あるのでそれまではルーターが使える.電話番号を捨てるのはいつでもできるのであと2ヶ月様子を見て判断してもよいのではないか?楽天エリアがその2ヶ月のうちに埼北地域まで拡大するというのはありそうもないが,万一そういうことにでもなったらまた別の選択肢が発生するかもしれない...ちなみにWIMAX2で実測すると以下のような数字が出た.これくらいのスピードがあれば,確かにストレスなしで作業ができる.

image