希哲14年8月23日,デライトの隠し戦略・隠し機構として考案。
プロセス内隠しの高速性を活かしつつ,HTTP で更新情報を共有する。
「全てのデライターへ」を書きながら,用者が増えない“不思議な一年”について考えていた時,これがデライト開発の快調期と重なっていることに気付いた。
快調期が始まったのは昨年3月からだが,用者が増えないと感じるようになった時期と符合する。用者が少ないことで面倒事が減り,開発に集中しやすくなったとは漠然と感じていたものの,二つの現象をそこまで強く結び付けていなかった。宣伝の抑制はよくあったが,ごく感覚的なものだった。だから,ぱったり用者が増えなくなったことが不思議でもあった。
最近になってまた新規用者の増加が見られるようになったが,これは第四次宣伝攻勢開始後,第二次知番改良が終わり KNEST 隠しの実装方針がまとまった6月後半からだ。自動知番拡張と高速化は過去の宣伝攻勢を失速させていた課題だ。毎回何とかなるだろうと見切り発車していたが,今回は本当に上手く行った。6月30日の日記に「これでようやく青天井が見えた」と書いたように,初めて抑制の必要を感じなくなった。
用者対応の軽減や仕様変更のしやすさなどは枝葉末節で,結局,最適化を限界まで遅らせたことで高い開発効率を維持することが出来た。その環境を作り出すために,無意識にというべきか結果的にというべきか,用者数の抑制をしていた。宣伝の抑制もあるし,恐らく近寄り難い雰囲気も出していたのだろう。これに気付いて初めて,二つの現象が表裏一体であり,極めて合理的なものだったことが理解出来た。
ずっともやもやしていたので,目から鱗が落ちた気分だ。普通の企業にはまず出来ないことだ。快調期がいかに貴重な時期か再認識出来たし,現状認識が鮮明になったことで今後のデライト市場戦略にも良い影響を与えるだろう。
思わぬ収穫に繋がることが多いとはいえ輪郭整備兼一日一文に時間を割き過ぎているような気もするが,いずれにせよ新生デライトの完成は来月に持ち越すしかない時期だ。組計調整を始めることにした。
最近,実用上深刻な問題ではないものの体感的に壊衝が増えていたが,握接録をよく観察してみると,ほとんど特定パターンの URL で発生していることが分かった。大きな原因は次の2つだった。
DG_T::cnt_fnd()
が番無し輪郭の旧い記法 K#A-XXXX
などでの握接時に壊衝していた。404 Not Found
用のページ定義が過去の整理で消えていたせいで,ここでも壊衝していた。これらの URL にボットが握接したことによる壊衝が多発していた。
一応の修正・出振るい済み。まだ小さな問題はあるが,だいぶ安定しただろう。KNEST 隠し実装以後の排他制御の問題だとすると厄介だなと思っていたので一安心。
壊衝していたということは KNEST 隠しも十分活かせていなかったということで,最近感じていた体感速度低下の一因だったか。upub
の導入ばかりが原因だと思い込んでいた。
OFFSET
句}{減らせる}{付けたかった}{ts_upd
}{利用しやすくなった}{実装しておいた}{一覧部分}{整備した}{隠し効率}...デライト高速化における KNEST 隠し実装が一段落した。18日は作業方針検討のみで20日から,休日を除いてちょうど10日間での達成だった。夜に出振るい済み。
必要以上に固め過ぎるのも良くないため,隠し化は現時点で最低限必要な範囲に留めたが,期待以上の安定性で期待通りの高速化が得られた。次の施策も出来たので,まだまだ高速化出来る。KNEST 隠しは Dex に匹敵するデライトの武器になるだろう。
交度整理をしっかり進めたこともあり最初の輪数取得改良が想定以上に長引いたものの,ここで KNEST 隠し共通の問題がほとんど解決したため,自我隠し・輪郭隠しは半日ほどで終わった。この交度整理も収穫として大きかった。輪郭操作系の kn
の外充て函数を整備したことで関連交度も一気に整理された。
影響範囲と確率的に大きな問題はないだろうと見て,排他制御が甘い部分をあえて残して出振るいを急いだが,出振るい直後に壊衝が多発して少し焦った。すぐに論軸的な問題と気付き修正し,その後はむしろ想定以上に安定して動いている。この判断も結果として正解だった。
輪数隠しに関しては,第二次知番改良中に固まった「輪数取得改良」として,輪数取得の仕組みを全体的に改良した。
これまでデルンではいちいち厳密な輪数表示をしていたが,これが大きな低速化要因になっていた。デライト以前まで,count()
の遅さに対する認識が甘かった。デライト以後,そもそも出場における件数計算は原理的に遅いもの,と気付いてページ付け(OFFSET
句)に上限を設けるなどの対策はしていた(希哲13年10月14日の開発記録)が,輪数は一筋縄ではいかない部分があり放置してきた。
厳密な同期の必要性や隠し効率から,次のように整理することにした。
また,この過程で各輪郭操作での輪数更新が必要になったため,ほとんど未実装だった輪郭操作系の外充て函数を整備した。
自我隠しに関しては昨年4月に中途半端な実装をしていたため,これを整理した。輪郭隠しは,現時点で一覧部分には適用出来ないものの一応実装しておいた。
自我隠しが出来たことで自我情報を利用しやすくなったため,自我アイコンに ts_upd
を使った隠し破りを付けたかったが,自我情報の取得部分がまだ非効率なので見送った。
輪郭情報も求頼を分割し過ぎているので,これを統合することを考えているうちに,次の施策がまとまった。
輪郭一覧については,まず知番のみで中景輪を取得し,輪郭隠しと照合してから三景の輪郭情報を同時に取得することにした。これで輪郭隠しを効率的に利用出来,求頼を大幅に減らせる。予定していた検索属性もここで盛り込む。
KNEST::cch_
実装}{希哲16年6月16日5歩}{一段落した}{実装出来た}{開発}{開発記録}{KNEST 隠し実装}{KNEST 隠し}...自我知番省略機能実装を終え,第二次知番改良も完了とした(20歩)。ここでやっておこうと思ったのも,途中で第零番節の削除に転換したのもあまりに急だったが,その割には終始円滑に捗り,収穫は想定をはるかに越えて多大だった。全体として大成功と言っていいだろう。
第二次知番改良を経て,知番は表記的にも内部的にも完成の域に達した。あとは仕様・実装の微調整を繰り返していく。
まず,当初の目的だった知番の簡略化は言うまでもなく大きい。これまで,一般のデライト用者は最短でも K#9-XXXX/A-YYYY
という15文字の知番で輪郭を扱う必要があった。それが第零番節の削除によって11文字の K#XXXX/YYYY
になり,自我知番の省略によって7文字の K#/YYYY
になった。知番表記仕様に関しては理想的な形だ。
「第零番節の省略」から「第零番節の削除」に転換したことで,知番周りの交度・出場整理も劇的に進んだ。これにより,効率性と保守性が大幅に向上したのはもちろん,「新括体採番法の完成」という思わぬ収穫に繋がった。未実装だった自動知番拡張もここで実装出来た。今のところ第二番節は私しか使っていない状況だが,そろそろ必要かという丁度良い時期だった。
波及効果も想定以上に大きかった。出場の見通しの悪さなどが障害になっていた機能実装に関しては大幅な所要時間短縮が見込めるようになった。特に見通しが悪い課題だった KNEST 隠しの出与え構造がこの期間に固まり,一気に実装可能性が高まった。自我知番省略機能で Dex との連携が必要になったことで,他の記法でも活かせる出与え共有機構が整った。これが無番輪符改良などにも繋がっている。
将来的に長い知番が増えた時のための「知番略記法」を中心とした第三次知番改良の方針も固まった。この長年の課題にも解決の見通しが立った。
一つ見送ったこともある。自我知番が省略された知番の写し取り時に自我知番を付け,自輪郭の描写欄などへの貼り付け時に自我知番の省略をする(4月8日の開発記録),というのは,やはり用合いとしては理想的で盛り込みたかったが,今回は見送った。このあたりの事象は Aejs で整理中なので,どうしても場当たり的な交度になってしまう。他輪郭の素出から写し取りたい時や,外部媒体に厳密な知番を貼り付けたいという時には便利だが,現時点で必要としている人は少ない。共有目的なら共有ボタンがある。交度整理しながら適当な時期に実装することにした。