ぷろぐらむ
ええい、またか。
文明発展シミュレーションゲームで優秀な成績を修めていた私は新任としてとある星にいる人類の文明管理を任された。
だが、なんども失敗した。
失敗した原因を元に改善をしてもまた別の失敗をする日々が続いた。
そしてなんとか成功と呼べる文明を生成した日、資料庫に文明管理のテンプレートが用意されていることを知った。
なんで誰も教えてくれなかったんだ。
今度はそのテンプレートを使って実際に管理してみた。
確かにテンプレート通りに進むことは確認できたが、そのテンプレートが使いづらい。
誰がこんなもの作ったんだ。
資料庫を漁ってテンプレートの素を見つけた。
そこから資料を作るのだが、今度はどうとでも解釈できるような作りのために管理が死ぬほど面倒だった。
私の環境に合わないものまで見てられるか。
頭きた。こうなりゃ自作してやる。
幸いにして私は製造系の権能を持っているのだ。上位から仕組みの製造は自由にせよと認められている。
こうして本業そっちのけで自分用の文明管理テンプレートの作成を始めたのである。
----
むぅ。絶妙に合わん。
世に出回っている文明管理のテンプレートは大体がフリースタイル形式だ。
細かく設定可能なのもあるが、大抵のものには時系列の考えの無いものが多い。
"その時点"という視点で管理すると時間の概念がなくなる。
そして時間の概念を導入するととたんに煩雑になる。
時間ごとに事象を書くのは面倒だ。
ここは潔く先例に倣って時間軸を考えないことにしよう。
ウィキという仕組みにたどり着いた。
なるほど。いろいろな事象を単語ごとに記述していく辞書か。
だが展開している環境が問題だ。これを気軽に個人で使用するにはハードルが高すぎる。
仕方ない。この仕組みを個人で管理できるようにしたものを自作するしかないか。
入れたい機能もあることだしな。
----
クソッ。共通の機能が少なすぎる。
数多ある情報記憶機構の中で、メジャーなものなら共通的に使えるようにしようと思ったのが間違いだったのか?
スリーマイクロのジャーバといい、エムドルのドトネトーといい、共通化を謳っている割には共通関数で一発とはいかないではないかッ。
……普通は1種類しか使わんから問題ない?フン。見解の相違だな。
複数のDB対応の問題を無理やり解決させ、機構間で微妙に違う方言があったら専用の補正ロジックを入れ、なんとか接続・読込・更新ができるようになった。
これでやっと辞書のエンジンに取り掛かれる。
----
大文字小文字の区別?商品名とかを考えたら区別必要だな……あれ、DB側が対応してねえ。
画像貼り付けたいがDBに格納するとあっという間に容量問題……。
個人使用とはいえセキュリティインシデントは考えて組まないとな……。
よし実行。
あ、駄目だ。リダイレクト往復ビンタでメモリがオーバーフローするし、単語を新規登録したときに自動で判定して文字の挿入させたら無限ループしやがった。
半角文字うぜえ。全角と同じ内容なのに利用状況から半角で登録する必要がありやがる。
クソがっ!まとめて対応してやんよッ!
そして最大の問題。単語のリンクが上手くいかんッ!
元ネタではAタグで一発完了なのだが、タグの概念を導入するとタグに関するロジックを組み込まないといけなくなる。
すでにスパゲティ状態となってるソースにこれ以上手を入れたくないし……マぁージでどうしよ。
----
ふう、ふう。
単語の囲い文字を規定して「運用で回避」にすることでなんとか解消したぞ。
実際にテストで色々データを流し込んでみるか。
色々なデータをいれたが全部想定内だな。
ん?あれ?文字の長さが超過?おかしいな……っと。
”森鷗外” (鷗:文字コードによっては全角2バイトのはずが4バイトとなるサロゲートペアと呼ばれる文字)
うが――――――ッッッ!
----
こうしてなんとか完成したツールだが、日の目を見ることはなかった。
上役「おまえ本業ほっぽって何やってたんだ?現地の視察に異動だってよ。」
……………………えっ。
実話をもとに。
現実はSQLiteとAccess繋げて.NET MAUIで辞書アプリ作ろうとして挫折中。