カード数上限の1000点に挑戦する(続き)

インポートファイルの読み込みとテーブルの構築を別ループに分けてみたが,パフォーマンスは変わらない.どうもDLL側になにか原因があるようだ.DLL側ではTREEVIEW:SendUpdateDataという関数で処理しているが,時間を消費しそうな箇所は見当たらない.1レコードを受理すると,人名リンクを1個生成するCARDTABLE::makelinkが呼び出される.SendUpdateDataではこのオブジェクトに値を転記しているだけで,それ以上のことは何もしていない.多分結婚リンクはカードをすべて読み込んだ後で実行されるのだと思う.人名リンクはそれほど大きなオブジェクトではないし,メモリ逼迫の要因になるとは考えられない.

確かに,VBからZ.mSendRecordDataの呼び出しに要する時間は当初の10msくらいからかなり急速に増加して,320点の辺りでは1秒掛かるようになってしまう.CARDLINK::makelinkで時間の掛かりそうなところとしては,①newlink,②BackupPointData,③MakingLookUpがある.このうち,②はUNDOに関係するものなので,止めてみよう.⇒確かにこれが原因だったようだ.今のところUNDOは不要なので,止めたままにしておく.⇒アクセス違反などが発生しているが,描画できた.

▲コラッツ1000.zelを開くのにかなりの時間が掛かり,マネージド・デバッグ・アシスタントが作動して停止する.

▲このサンプルは単純な木であるのに,ZTYW処理が作動している.暫定的にgoodsonを空としているため,例外が発生する.

▲人名枠高の計算がかなりおかしい.フォントサイズを大きくすると枠が伸びて世代境界を超えてしまう.しかも,人名が消えてしまう.系図画面設定でパラメータを変更しても画面に反映しない.⇒系統並び替えで正常に戻った.

▲親の垂線が兄弟連結線から突き出ている.⇒系統並び替えで戻る.

なぜだろう?スクリーンショットをペイントで開いて保存したファイルが壊れていて,開けない.⇒接続が切れていた.⇒画像の一部を切り取って保存した.横長の扁平な図形なので全体を取ってもあまり美的ではない…

コラッツ1000

世代数はもっとも高いところで10世代だ.667584453というのが多分この図に含まれる最大数だと思う.ノード数は1000しかないが,コラッツ関係の画像でここまでの図面は世界中探してもないと思う.PDFに落としてみよう.前日の修正が反映していないので,myAppが空になっている.確か,2つのクラスでdoClearを追加したような気がするが…修正はPAGESETUPだけのようだ.

コラッツ1000.PDFの左下隅の大きい数字が固まっている辺りを切り出してみた.

コラッツ100 Left Bottom 2

悪くないのではないかと思う.FBに投稿しておこう.⇒コラッツ1000.PDFのリネームができない.ファイル所有者の許可が必要だという警告が出る.コピーしてしまえばこっちのもののような気もするが,ローカルでコピーすることもできない.いや,当然かも知れない.ネットの向こうのマシン上のファイルをリネームしようとしていた.EdgeでPDFを開くと回転ができる90°回転すると,数字が縦になって読みやすくなる.ただし,その状態では保存できない.Chromeでは保存できた.これを出品することにしよう.500%までしか拡大できないが,十分だ.これができるのなら,座標変換しなくても現状のままで国際版を名告ることができる.

おかしい.最大数の667584453が重複している.ノード数は1000で合っているのだが…⇒読み込んだCSVでは1箇所だけだ.OpenOfficeでソートしたときにやり損なっているのだろう.⇒最初に番号列でソートし,次に氏名でソートしているが,2回目の氏名でソートのところでダブるようになる.単独で氏名でソートしても同じ結果になる.項目が重複しているのだから,ソートによってどこかに潰されたデータがあるということになる.かなりまずい.おそらくOpenOfficeのバグと見られるが…このダブリは完全に同一行ではない.父番号と属性が異なる.⇒読み間違いだ.正しくソートされている.ダブリではない.1文字違いで,667584433というのがあった.

数学物理etc(談話室)にアップロードしたファイルをダウンロードしてチェックしたら,回転が戻ってしまっていた.まぁ,仕方ない.ファイルを差し替えてみたが,同じ.ノーマルに見えるファイルをローカルでコピーしても同じような動作になるので,ダメのようだ.

カード数上限の1000点に挑戦する

コラッツ問題はすでに目処が付いているので.並行してゼルコバの木のデバッグを進めることにする.現在使っているバージョンはV2.2.0.030 R20210317というリリース版だが,できれば最終版からリスタートしたい.最終版の日付は2021-04-10でこの間,約1ヶ月の期間がある.疑問なのはログの最終日付が2021-03-25になっているという点だ.バックアップは最終版の4月10日まで途切れなく残っているのに,その間のログがないというのはどういうことだろう?ログを取らずに作業するなどということは考えられないのだが…

最終版はビルド可能で,一応走っているので,ともかくここから再起動することにする.今回の試用版でも多少の修正は入っているが,大きなものではないので,復元できるだろう.

サイトのWordPressにログインしようとしたら,ブロックされてしまった.

image

さらに,こちらのOpen Live Writerでもサーバーエラーが発生してしまった.

image

ロリポップが不審なアクセスをブロックするということはあるので,調べる必要があるが,サーバーにアクセスするときにはVPN経由というのは成り立たないのだろうか?ロリポップが正常なアクセスかどうかをIPで判断しているとすれば,VPNを使うのは難しいということになるかもしれない… xmlrpc.phpエラーというのはロリポップで出しているものだと思う.しかし,昨日・一昨日は終日問題なく使えていたと思うのだが…

さらにまずいことが起きている.ロリポップにログインできない.現在ログイン時にはサーバーから認証メールが送られてくることになっているが,それが届かない.この事象は12月2日にも発生していて,その後復旧しているが,ロリポップからは

「お問合せいただきましたログイン認証メールが届かない件は、以下の下記時間帯に起こっておりました障害が原因でございます。 ・発生時間:2021年12月2日14時7分 〜 2021年12月2日18時7分」

という返答をもらった.とりあえず,VPNを停止してみよう.応答は同じどころか,もっと悪くなっている.いや,大丈夫だ.メールが迷惑メールに落ちていた.ロリポップへのログインはできた.ロリポップでは不正侵入を防止するためにWAF(Web Application Firewall)というのを使っている.ブロックされた場合には,ここで該当するコードを除外する手続きを取ることによって再開できるようになっていたのだが,どうもそのツールが見当たらない.

image

現在の画面では上図の「ログ参照」ボタンが消えて,「無効にする」というボタンしかない.説明によると,「ハイスピードプラン・エンタープライズプランではこの機能は利用できません。」ということになっているので,何時の時点かで,ハイスピードプラン・エンタープライズプランに切り替えていたのだろう(多分無料のはず).ということは,WAF機能を無効にするという選択しかないということになる…ともかく,やってみよう.設定が反映するまで5~10分掛かるというので,しばらく放置して待つことにしよう.⇒通った!

amory氏からのメールが入っていたので,返信を送ろうとしたのだが,弾かれてしまった.

image

受信は問題なくできていたのだから,かなりおかしい.前にもこのようなことが起きていたのでしばらく(1年以上)Outlookは使わないようにしていたのだが… 多分新しいパスワードを設定することで使えるようになるのだとは思われるが,マイクロソフトのアカウント管理にはかなり疑問がある.以前にもなにか不審なことがあって,パスワードを変更したことがあるが,そのパスワードが有効になるまで(確か)3ヶ月くらいの留保期間(その間は別のパスワードが有効のまま)があった.新しいパスワードを入力するのはいいが,どうやって本人であることを認証するのだろう?

パスワードを変更するのは止めて,Outlook.jpのサイトにログインしてみた.こちらでは従来のパスワードが通り,送信することもできた.outlookなどのいわゆるウェブメールはセキュリティが厳しくなってローカルでメーラーを使って送受信するための条件がうるさくなっている.昔は,ウェブメールはセキュリティ上のリスクがあると言われたが,現在はむしろセキュリティ管理が一番厳格なのはgmilやoutlookなどウェブメールでむしろ,ドメインのメールアカウントの方がリスクが高くなっている.

いや,それでもまだおかしい.送信には失敗しているのに,送信済みアイテムに入っている.ただし,下書きにもまだ残っているので,送信できているのかどうかは不明だ.いや,多分送信できていないと思う.自己宛にCCしているので成功していれば,babalabos@gmail.com に2通入って来なければならないが,1通しか入っていない…受信ができて送信できないというのは考えづらいが,設定を調べる必要があるかもしれない.このアカウントからはほとんど送信したことがないので(と言っても,一度も使ったことがないということはないと思うのだが…)

▲氏名欄で左右カーソルキーを押すと入力された文字が消えてしまう.おそらくこれは,カーソルキーに「カード移動」機能を持たせているためではないかと思う.⇒いや,違うようだ.上下カーソルキーでカード移動になっているが,左右カーソルはそういう動作にはなっていない.既存サンプルでは左カーソルで入力欄の左端にカーソルが移動してしまうが,文字は消えない…

カード画面ではKeyDownSubでキー入力を処理している.左右カーソルキーではSelectCard.SpinUpClickが作動する.これはカードの移動処理だ.

▲カード画面上部ツールバーの氏名欄に表示されている名前の後ろに余分なスペースが入っている.

カード数1000点のコラッツ木をエクスポート→インポートしようとしたのだが,インポートにやけくそ時間が掛かっている.メモリ使用量が45%になっているので,それが原因かとも推測されるが,それにしても遅すぎる.メモリを6GBくらい食っているが,少し大き過ぎるような気もする.1件処理するのに数秒掛かっている感じだ.それとは別にときどきエラーが発生しているのも気になる.どうなるのか?少し放置して様子を見てみよう.

現行論理は基準番号をテーブルのインデックスに使っているのではないだろうか?まさかとは思うが…だとしたらほとんど動作しないのも当たり前だ.流石にそれはないとは思われるが… 現行ではCSVファイルから1行読み出すたびにテーブルに1行追加しているが,これが時間を食っているのではないだろうか?1行追加するたびにテーブル全体のコピーが発生しているのだろう.DLL側にはそれほど時間を食うような要素はない.テーブルは最初から最大サイズのものが用意されているからだ…

VB側では1レコードづつ読み出すのではなく,最初にすべてのデータを読み込んでからテーブルの構築に掛かるべきなのではないだろうか?いま,#712を処理しているところなので,あと30分から1時間は掛かるだろう.いま,800の手前だが,1点処理するのに25秒掛かっているのでさらに1~2時間は掛かりそうだ.いや,どうも897のところで止まってしまったようだ…

▲カード選択時に表示される赤枠は主選択カードを示すものだが,常時表示されているため,スクリーンショットを取るときには邪魔になる.

ゼルコバの木でコラッツ原木を描画する

今年もまた,amory氏からのワインが届いた.毎年クリスマス直前に送って頂いているが,今年の4月からは作業も完全に止まり,2021年以内に正式版をリリースするという公約を果たせる可能性がゼロとなったことが確定し,今後の見通しまでもほぼ完全に失った状態になっていたため,ほとんど諦めていたところだったのでとてもうれしい.Amory氏はわたしにとって,わたしが窮地に陥ったとき必ず手を差し伸べてくれる阿弥陀様のような存在だ.

IMG_20211214_161138

コラッツ予測問題はまだ細部の詰めは残っているものの,基本的なところではほぼ解決している(と考えている).我々の解法を検証するためにコラッツ木を木の根から生成するプログラムを走らせることに成功している.これができるということは,問題がすでに解かれているということを意味する.先に進む前に一度この原木を系図図面として表示してみたい.コラッツ木生成プログラムはノードのリストをコンソールにダンプするだけのプログラムだが,そのデータをCSV形式のファイルに落とすことができれば,ゼルコバの木でインポートして描画できる.

プログラムを加工して一覧表ファイルを生成するのは難しくないと思われるが,その前に一覧表のインポート・エクスポートが動作しているバージョンを見つけなくてはならない.幸い,前回使った Ver 2.2.0.030 Rel 2021-03-17 は使えそうだ.少なくともこの版がエクスポートしているフォーマットでファイルを構成してやれば読み込むことはできるだろう.⇒前にも出ていたが,どうも WordPress の動作が思わしくない.再投稿しても元の版に戻ってしまう.それも3つくらいのバージョンが保存されていて,それを順繰りに出してくるという動作になっている.乗っ取られてしまったのだろうか?ログインできない.

このパスワードはこの記事をポストするために今さっき使ったばかりのものだ!「パスワードを忘れましたか?」で送られてくるはずのメールも届かない.どうもアカウントのメールアドレスまで書き換えられてしまっているようだ.ともかく一度リブートしてから考えることにしよう.というか,このリンクはまだ活きているようだ.投稿するとエラーにならずに受理されている.リブートするともはやそれもできなくなってしまうだろう…

どうもこの不具合はこのノートに限って起きているようだ.スマホでは最新投稿が正しく表示されている.結局,一番怪しいのはこのノートそのものと言うことになるのかもしれない…だが,それではどうすればよいのか?どうも,訳が分からない.スマホの方でも更新が止まってしまった.いや,こちらは多少の時間差で動作している… ノートでも更新はできた.もしかして,フィッシングに引っかかってしまったのではないだろうか?

image

これがいつもログイン時に出てくる画面だが,さっきはまったく違う(今まで見たこともない画面だった).デザインを一新したのだなと思いこんで,何の不審もなく入力していたのだが… ともかく一度リブートすることにする.⇒ツールバーにWordPressログインのリンクが2つ出ていた.一つはテント村にアクセスするためのもので,もう一つはWordPress本体のサイトにアクセスするものだ.紛らわしいので,離れた場所に移動した.

どうもよく分からないが,ノートの物理的寿命が尽きかけているという可能性もある.動作がおかしいのでMeryエディタを開いて文字入力の動作を確認しようとしたところ,キーボード入力がまったく作動しない状態になっていた.もう一度再起動して今度はログインできたので,現在はWordPressのダッシュボードからこの記事を編集しているところだ.予備のPCはあるので,乗り換えは可能だが,そのマシンを日常作業ができる状態にまで整備するのにはかなりの時間と手間が掛かる.いまちょっとそんな余分なことをしている余裕はないので,しばらくこの態勢のまま続けることにする.

どうも,まだ動作がおかしい.Open Live Writerを開くと自動的にログインした状態になっているが,最近の投稿を開こうとすると,古いバージョンがダウンロードされてくる.ログインし直して開いても同じだ.これでは使い物にならない…ともかく,サイトにログインして編集できているので,しばらくこれを使うことにしよう.

一応正則コラッツ木生成時に,レコードをエクスポートすることができるようになり,ゼルコバの木でも読み出せるようにはなったが,今のところノード数40までしかインポートできていない.3-正則木ではノード数は121になるが,BASETABLE::getrecnで「参照番号を発見した」というダンプを出して停止しなくなっている.これは必ずしもエラーという訳ではないようだが…このダンプを止めて様子を見ることにしよう.⇒エラーは多発しているが,読み込むことはできた.5-正則木の364点も読み込めた.ただし,ノード数が365になっている.これは少しおかしい.5-正則なのだから,ノード数は偶数になっていなくてはならないのだが…というか,コラッツ木生成アプリの方では364になっている…

ノード数は奇数になる場合も偶数になる場合もある.必要な条件はノード数-1が3で割り切れるかどうか?だ.k=2でN=13,k=3でN=40,k=4でN=121,k=5でN=364だ.この数は正しいと思われるので,レコードをどこかで一つ余分に生成していると考えるしかない.食事のため席を離れていたら,開発機でも変なメッセージが出ていた.「Web ブラウザー」というタイトルのパネルで「このスクリプトの実行を中止しますか?このページのスクリプトがWebブラウザーの実行速度を遅くしています.スクリプトを実行し続けると,コンピュータが応答しなくなる可能性があります.」という警告だ.しかし,このマシンはネットに繋がっていないし,もちろんブラウザなど走っていない…このエラーは2つ開いているVSのうち,正則コラッツ木用に開いているものだ.確かに,実行中になっているが…一度閉じておこう.

ゼルコバの木でコラッツ・ツリーを表示する

最後に開発環境にアクセスしたのが,2021年4月10日.それから,8ヶ月も経過してしまっている.開発履歴の中でリリース版が動作したのは,2021-03-16 版のみだ.それも実行時にエラーが出てしまったので,直近のリリース版V2.2.0.030_R20210317を使うことにしたが,バグが出てしまった.コラッツ数列を#55まで入力して,次の111→167を入力しようとしたところ,下図のようなエラーになった.

image

このパネルが65回くらい連続した後,下記のようなエラーに変わった.

image

幸いサンプルはこの直前に保存してあったので,障害を再現することは可能だ.しかし,この状態ではファイルを読み直しても作業を続行することは難しい.一応アイドル状態には戻るが,画面が壊れてしまっている.いま,この場で直ちにデバッグに入るというのはかなり難しい.データはまだ68件までしか入力されていない.少なくとも50までの奇数が繋がったところまでは持ち込みたいのだが…この対を外して続行できるかどうか試してみよう.

サーバーとのやり取りも少しおかしい.記事を修正して投稿しても反映されない.しかも,上記の2,3行を加筆して投稿したものが,一度は表示されているのに,元に戻ってしまっている.この間もロリポップ!との間で不具合があってサポートに問い合わせしたばかりだ.このときは「ログインの認証メールが届かない」というエラーで,「2021年12月2日14時7分 〜 2021年12月2日18時7分の時間帯で一部メールが届かないという事象が発生していた」というレポートを受け取っている.⇒ようやく更新された.ネットワーク経路のどこかでキャッシングされているという可能性もある.VPNを使っているので,それが影響している可能性も考えられる…今回は何の遅滞もなく更新された.

どういう訳だろう?エラーが収まってしまった.原因は後から追求することにして,とりあえず入力を続けることにしよう.⇒また,同じようなエラーがでてしまった.今度は251→167だ.今回は保存していないし,続行可能な状態にもならない.バックアップには167→111が入っている.この直前の状態でバックアップしたつもりだったのだが…しかし,(今回)エラーが起きた時点でバックアップしたものは再度開いたときにも同じエラーになる.

#102で305→203のところを読み間違えて,305→102と入力してしまったようだ.打ち直そうとして102を上書きして203としたところエラーになった.現在までのカード入力数はカード102を削除して120,ここで一応バックアップを取っておく.カードの追加はここで打ち切って,233, 215, 269の系統だけが非連結状態になっているので,これらを繋ぎ込むのに必要なカードだけを入力してみるようにしよう.ダメだ.この系統233はどんどん大きくなって1000を超えてしまった.とりあえず,ここで打ち切っておこう.

image

▲系図画面上で選択判定が残ってしまっている.他のカードを選択しても選択が消えない.

系統233以外の系統215, 269は連結できた.このチェーン(233)の先頭は719で,1の系統よりもずっと長い…この系統には,31, 41, 27, 55, 73などの若い番号が含まれるのでなんとか繋いでやりたいのだが,後でということにしておこう.

▲ページ設定を開こうとしたら,エラーが発生してパネルが開けない.プリンタの電源を入れてみたが効果なし.それどころか,印刷コマンドではエラーさえ表示しないで,無応答だ.印刷プレビューは開くことができる.

image

どこかに印刷のできる版はあるだろうか?古いバージョンのプログラムではバージョンの新しいファイルを開くことはできないので,Ver 2.2.0.028より新しい版を探さなくてはならない…

どうも所内LANも具合が悪い.頻繁に切れてしまう…開発機ではそういうことは起きていないようなので,外部接続用のノート固有の現象と見られるが…このマシーンはUSBが切れたり,画面が真っ赤になってしまったり,かなり末期的症状も見られるので,万一に備えて代替機を用意しておく必要がありそうだ.

開発機にインストールされている版は2.2.030だが,印刷周りの症状は同じだ.2.2.0.014版ではこのファイルを開くことはできない.しかし,ページ設定や,印刷パネルは開ける.このビルドは2020-10-31だ.印刷周りの不具合は2021年に入ってから潜り込んでいた模様だ.奥の手としては,一旦このファイルをテーブルとしてエクスポートしてから読み込むということが考えられる.やってみよう.ダメだ.エラーになってしまう.-1041:ファイルオープンエラーだが,その後にReuseWasteのエラーが出ている.どういうことだろう?データは131点で特に重いという訳ではない.

image

しかし,明らかにこのエクスポートファイルはおかしい.父番号がすべて(空欄を除き)すべて1になっていて,その代わり母番号のところに父番号に相当する値が入っている.続柄はすべて0になっていて,配偶者に(0), (1), (2)などが入っている.これは続柄に相当するはずだ.修正してOpenOfficeで保存して再オープンしてみたら,漢字がすべてハングルのような文字に変わってしまった…

image

マイクロソフトのOfficeのアイコンは入っていたが,開けない.Character setがKoreanになっていた.どうも打つ手がなくなってきた.一覧表のエクスポートは本来バージョンが変わって列が移動したり,削除されたりしても動作するようになっていたはずなのだが,どうやっても読み込めない.後は,スクリーンショットを取ってペイントで切り繋ぐしかなさそうだ.⇒何とかやりくりしてFBにアップロードした.どこまで伸びるのか分からないが,せめて,31, 41, 27など,50以下の若い数字が入っている系統233だけは本線に繋いでみたい.一画面に収まるようにしたいのだが,できるだろうか?

▲並び替えするとき,数字は文字列としてではなく,数として比較できるようにしたい…

▲新規カードでCheckSelectListのエラーが出る.

image

▲子ども欄の氏名を消去したとき,「結婚リンクが消えていない」エラーになる.

image

▲先祖並び替えが動作しない.ボタンが効かない.また,ドラッグ移動もできない.↑キーでは移動できるが,適用で戻ってしまう.系統が異なるときは移動できないのだろうか?先祖リストには表示されているのだが…