こうえん【後縁】バックエンド(backend)の希哲館訳語。

{希哲16年5月5日8歩 K#F85E/A-E74C-B5BA}

{希哲16年4月7日10歩 K#F85E/A-E74C-B300}
2月23日頃から検索結果の改良について本格的に考え始めていたが,「検索属性」を導入し,検索結果の多段化を進めていくことにした。
現状,例えば括弧類を自動付加した検索は出来るが,その逆は出来ない。括弧付きで描出したい場合,括弧無しで検索して既存輪郭が無いことを確認した後,括弧を付けて再検索するということが多く,とりあえずこの手間を無くしたかった。全知検索演算子の制御に任意の括弧類を使えると好都合ということもあった。
文字数の昇順で揃えてそれなりの結果になっているのでこれを降順にすればいいかと思ったが,上手く行かない場面が多々あるので一時凌ぎの域を出ない。
将来的な拡張性も考えると検索結果の多段化が好ましい。風船輪郭や輪括内検索にも応用出来る。希哲14年7月30日8歩から輪括内検索は輪括内のみにすると使いにくいという理由で中途半端な状態になっていたが,優先表示で解決出来ることに気付いた。
整数値に揃えを兼ねた役割を与え,これを「検索属性」として利用出来るようにする。
ここまでは良いが,効率的な実装が難しい。単純に全ての検索パターンを UNION
で結合すればひどいことになるのは目に見えている。外充て函数で余計な検索を省くようにする,挿入・更新時に確定出来る情報はフラグ化しておくといったことに加えて,後縁での出力は最低限にして前縁で追加取得するといった工夫が必要になるかもしれない。
いずれにせよ後縁の対応は進めて問題ないだろう。設計方針さえ固まれば最適化はどうとでもなる。

{希哲16年3月31日の開発 K#F85E/A-E74C-FB1F}
- 全知検索窓に
<input type="search">
を導入。 - 輪郭ページと前後景検索ページで×輪結(未録入りでは扉への輪結になっているデライト語体)・共有ボタンの表示条件を共通化し,常に×輪結か扉輪結に加えて共有ボタンを表示するようにした。
- 「Ctrl + ダブルクリック / Enter で描き出す」としていた通注を「Ctrl + Enter(ダブルクリック)で描き出す」に変更(再描出フォームでは「〜で完了」)。
- 後縁で出力する JSON の越化が出来ていなかった問題を修正。
- ほか装体調整など。
就寝前に閲覧専用模動に関して閃きがあり,また脳爆発が始まってしまった。
漠然と,中景部の角丸周辺がボタンとして使えそうだとは思っていたが,これで吹き描きを長方形にして前後景部を隠し,さらに中景輪符の波括弧を角括弧に変えれば吹き描きの意味ともデラングとも調和する。詳細はまだ練る必要があるが,かなりの有力案になりそうだ。

{希哲15年9月5日の開発 K#F85E/A-E74C-7A0B}

{希哲15年9月3日の開発 K#F85E/A-E74C-339B}
気になっていたデライト高速化に関する問題をいくつか片付け,出振るいした。結果として大きな体感表示速度の向上が見られた。
離立備立・デバッグ備立の切り分け
やや混乱していた kn cpl
などを整理しながら,離立備立とデバッグ備立を切り分けられるようにした。5月のデバッグ出力整備でデバッグ出力と録出力を切り分けておいたことも奏功し,作業は円滑に進んだ。
これまで,本番環境でも deln.fcgi も libxtd も xpo.Pg もデバッグ出力を無効化していなかった。特に大きな負荷になる要素ではないが,高負荷時の性能低下要因を極力減らしたかった。
精神衛生的な面でも効果が大きかった。長い実験段階を終え,一つの製品として完成に向かうデライトを象徴する出来事のような気がして嬉しかった。
デライトの WebP 対応
一般用者の自我アイコンも WebP 化を完了し,添付画像を除き,現時点で出来るデライトの WebP 対応は完了した。
添付画像の仕様再検討
先月31日12歩ではすっかり忘れていたが,互換性の問題があるため,当面は元画像と WebP を共存させておくことにした。特に,Safari の対応が遅かったため,まだ WebP への統一は時期尚早だろう。
非対応舞覧の市影は小さく,デライトにおける譜類添付機能もそれほど本質的な付徴ではないため,割り切って無視出来なくもないかとも考えた。いずれにせよ,気になるのはストレージ容量なので,それが問題になるまでは様子見することにした。
外部スクリプトの選択的読み込み
輪郭を含むページで無条件に読み込んでいた KaTeX と highlight.js を,必要な場合だけ後縁で出力させるようにした。
`whr_kw()`
}{希哲15年8月23日の開発}{検索語変換}{どうとでもなる}{条件次第}{OR 検索}...
{希哲15年8月23日7歩 K#F85E/A-E74C-ECC6}
全文検索にはとりあえず pg_bigm を採用しておくことにした。知名検索でも中間一致検索の性能は課題だったので,これも解決出来そうだ。後方一致検索に関しては,PostgreSQL 9.1 から reverse() が組み込み函数として提供されるようになっているので問題ないだろう。
後縁の実装はどうとでもなるが,難しいのは用合いだ。全知検索窓をこれ以上ごちゃごちゃさせたくないので,まずは検索演算子として各種機能を実装したい。これに関しても,だいぶまとまってきた。
カンマを AND 検索に使うという構想があったが,& ボタンとの兼ね合いもあるので,まずは無難に &
か AND
で AND 検索,|
か OR
でOR 検索に対応することにした。除外検索は条件次第で -
を使えるようにしてもいいだろう。
部分一致検索については,省略記号 ...
とダッシュ記法を応用した ---
に対応する。
描写検索については,基本的には昨年7月27日3歩の方針を踏襲し,末尾に ??
を加える形で対応することにした。デラングとの兼ね合いで検索寸片をどうするかという課題は残るが,デライトではそれほど多用するものではないので,まずは普通に引っかかるだけで十分だろう。
一つの可能性として,検索ボタンをダブルクリック/ダブルクリックで検索対象を切り替える機能があってもいいかもしれない。
いずれにせよ,まずは既存の検索語変換交度を whr_kw() にまとめる作業から始めることになるだろう。

{希哲15年7月17日の開発 K#F85E/A-E74C-A5E2}

{希哲15年6月17日16歩 K#F85E/A-E74C-A343}

{希哲15年4月8日の開発 K#F85E/A-E74C-86B0}
3日の開発から6日間に渡って続いたデライト小理腑をいったん終えた。
結果的には主に装体書整理とテンプレート整理だったが,これにより,保守性と体感表示速度の大幅な向上が見られた。
装体書とテンプレートは,Cμ によるデルン初期実装から長いこと継ぎ足しで使ってきたため,古い記述や譜類に埋もれて目的のものが探しにくいといった問題が慢性的にあった。分割すべき記述が一つの譜類に詰め込まれている,逆に,一つにまとめておくべき記述が複数の離れた譜類に分散している,といったことがよくあった。今回の小理腑ではこの点が大きく改善した。
テンプレートの方は折に触れて整理してきたからまだマシだったが,装体書の方は適当に分割した譜類に大量の記述が詰め込まれている状態だった。そもそも SySS の備立すら適当で,.syss 譜類があっても .scss が無いと換配されないなど,多数の譜類を管理出来る状態では無かった。これを機に備立方法から整備した。
装体書整理は当初,HTML の肥大化を恐れて埋め込み装体書の見極めに時間をかけ過ぎてしまっていたが,この日,JavaScript や HTML に gzip 圧縮がかかっていなかったことに気付いた。ちょっとした deln.conf の間違いだったが,これをきっかけに吹っ切れ,作業が捗るようになった。結局,転送量を大幅に削減出来た分,多少の冗長性には目を瞑ることにした。
これら作業の結果として,目的の装体やテンプレートにすぐ握接出来るようになり,埋め込み装体書の調整等も的確に行えるようになった。
表示速度は,ページにもよるが,DOMContentLoaded までの計測値で0.5秒近く短縮した。これに装体適用の合理化も加わり,体感表示速度ははっきり向上したのが分かる。溶明の動き付けをいったん削除したのも大きいかもしれない。デライト初期実装で読み込みの中途半端な遅さを誤魔化すため0.3秒の溶明を入れていた。
現時点でここまで高速化に繋がったことは思わぬ収穫だった。これまで,「デライト高速化」は後縁の最適化を中心に考えてきた。後縁の最適化余地の大きさと負荷軽減を重視していたこともあり,前縁最適化は期待も重視もしていなかった。
希哲13年の前縁改革で前縁の重要性は分かっていたつもりだったが,まだ認識が甘かったようだ。これに気付いたことも大きな収穫と言えるだろう。
そもそもスクリプトの動的読み込みに使っている @icl() とその周辺整理によって生じた描画乱れ解消のために始めた作業で,あまり多くは期待していなかったが,結果的に大収穫となった。
ただし,10日までに盛り込むつもりだった付徴が後回しになり,デライト収益目標達成にどう影響するかは不透明だ。
問題が解消するまで出振るい出来ず,他の作業が出来なくなっていたこともあり,作業項目としてのデライト小理腑はここでいったん完了とすることにした。整理が必要な部分はまだまだ残っているが,ほとんどは漸進的に作業出来る部分だ。いま出来る範囲でまとまった時間を使ってやる理腑はこれが限度だろう。
