{デライト}{<path>}{希哲17年5月4日の副日記}{方針変更}{交代させる}{嬉しい所}{二大欠点}{何のことはない}{直接編集}{各部分}...=}(118)

{希哲17年5月4日の開発 K#F85E/E74C-E5D4}

CSS アイコン実装から動的引連 SVG アイコン実装切り替えることにした。軽く実験してみたやたら捗ったため,改めて早期実装目指すことにした。

昨日の開発記録書いてみてCSS アイコン調整かかる時間馬鹿にならないなと考えながら何気なく Google 検索素出覗いていたら,意外に上手くアイコンSVG表現出来ているなとは思ったが,やはり HTML出力している引連 SVG アイコン気持ち悪い感じたここで,「行き詰まり防ぐための選択肢」として残すことにしていた4月27日の開発記録動的引連 SVG凌ぐことを思い付いた

これまで見てきた解説悪かったか,「SVG煩雑」という先入観がありずっと苦手意識持っていたが,引連 SVG 関しては<path>中心に削ぎ落とせ十分簡潔出来ることが分かった例えば従来のデライト+ アイコン以下の記述十分表現出来る

<svg viewBox="0 0 32 32">
  <path d="M 4 16 H 28 M 16 4 V 28" fill="none" stroke-width="5.5" stroke-linecap="round"/>
</svg>

引連 SVG なので,CSSJavaScript での各部分操作容易だ。直接編集やたら難しい言われているので面倒臭そうだなと思っていたが,何のことはないすぐに習得出来てしまったCSS アイコン調整比べれば直感的ですらあるし,拡縮時品質比べ物にならない。これで外部通類への依存という懸念払拭出来たあとはHTML の肥大化保守性の低下という引連 SVG二大欠点スクリプト補えばいい。動的引連 SVG なら部品再利用十分柔軟に出来る

元々 CSS アイコン中心とした枠組み応付だったので,作ってきた枠組みそのまま活かせるのも嬉しい所だった。動的引連 SVG中心にCSS アイコン応付として交代させるだけで大きな方針変更必要なかった

{希哲17年5月6日の開発}{希哲17年5月6日の進捗}{希哲17年5月6日}{制御したい}{1つの}{座標指定}{当面は}{表示要素}{変化させる}{外部 SVG}...=}(91)

{希哲17年5月6日10歩 K#F85E/E74C-DDBB}

進捗時限記録中略

動的引連 SVG アイコン実装

途中で終了

SVG スプライト手法取り入れSVG アイコン定義icn.svg集約することにした。

SVG 出与えAejs組み込んで直接挿入してしまうことを考えていたが,舞覧隠し適切な分離出来なくなる要素の再利用必要な id 属性使いにくい,といった問題があった外部 SVG<use>利用すれShadow DOM になるので,id 属性衝突などを気にせず要素整理しやすくなる

スプライト画像として background-image利用しやすいというのも大きい:targetフラグメント識別子利用して表示要素変化させる技術があることを知ったが,舞覧によっては効率的に隠し出来ないことがあるらしく,今回は見送った<view>使えればいいが,Safari対応難がある当面は古典的な座標指定行くことにした。

アイコン制作では,アイコン並べて全体ばら成し見ながら調整することが多いため,見本兼ねられるのも便利だ。

SVG スプライトだけで十分かもしれないと思いかけたが,<use> 1つでも若干冗長な上に,1つのアイコン要素細かく制御したい場合<use>複数必要になるため,やはりスクリプトでの補完欲しい

=}
{希哲17年5月4日}{希哲17年5月3日の副日記}{CSSアイコンは拡縮時に歪みやすい}{歪みにくい}{表示の乱れ}{ズーム機能}{ぼやけ}{主要な問題}{誤魔化し}{CSS アイコン集}...=}(81)

{希哲17年5月3日の開発 K#F85E/E74C-5BB8}

{デライト}{👍}{希哲17年4月17日の開発}{希哲17年4月17日の進捗}{希哲17年4月17日}{.bmp}{して欲しくはない}{制危面}{表現出来ている}{名前を付けたくなった}...=}(148)

{希哲17年4月17日13歩 K#F85E/E74C-3416}

進捗時限記録中略

デライト全体における添付譜類方針検討終了

添付譜類あくまでも添え物として最小限の役割留めエクスポート機能でも実譜類出力には今後対応しない方針固めた

元々添付譜類添え物として設計しているが,実際に譜類添付機能出来エクスポート機能実装しようとしてみると,実質的な役割落とし所意外に難しい意図に反して,変に使われ過ぎるのも問題だ。

エクスポート機能では,とりあえずは代替 HTML などで済ませゆとりが出来た実譜類にも対応するか,などと考えていたそもそもどんな大企業クラウドであれ消えて困るような譜類唯一の保管場所にすべきではないし,そこまで神経質な人手元抜控持っていないということも考えにくいので,実はさほど必要性の高い付徴ではない。とはいえエクスポート時負荷帯域だけが問題なら金で解決出来るのだから,将来的に対応しないというほどの動機もない

しかし添付譜類エクスポート出来てしまうことで譜類倉庫的な利用増え,それに伴い譜類保全責任が増せば,将来にわたって無視出来ない経営上の問題になる。ということについさっき気付いた描出公開原則同様,ここは割り切った用者文化育てていくべきだろう。

これに気付いてみて,最近添付譜類役割広げようとし過ぎていたことにも気付いた譜類添付機能サイズ上限拡張子制限緩和考えていたが,これも最小限留めることにした。拡張子制限制危面もあるが,献典として非効率だったり無意味だったりする譜類上信抑止といった効果望める例えば .bmpそのまま上信して欲しくはない

デライトの強みは,知番による意味符号化文字献典情報密度極限まで高め,その軽さ最大限に活かせることだ。譜類倉庫的な方面消耗するのは差別化戦略として明らかに悪手だ。譜類添付機能実装以降,その微妙揺らいでいることはうっすら感じていた今日は妙にもやもやしていると思ったら,どうもがそれを訴えていたらしい。気付いたら非常にすっきりした

描出公開原則のように何かこの方針名前を付けたくなったが,「譜類添付機能」という名前趣旨表現出来ているので,それに立ち返るということで十分だろう。

{希哲17年4月14日の開発}{希哲17年4月14日の進捗}{希哲17年4月14日}{知った時}{それ以上に}{どうかと思った}{装体複製}{これに限らず}{座標計算}{希哲17年4月14日13歩}...=}(71)

{希哲17年4月14日14歩 K#F85E/E74C-CD6D}

=}
{希哲17年4月13日の開発}{希哲17年4月13日の進捗}{希哲17年4月13日}{使うようになっている}{実装の変化}{仕様の違い}{フォーム送信}{切り替えておく}{交度修正済み}{置換済み}...=}(94)

{希哲17年4月13日14歩 K#F85E/E74C-0B55}

進捗時限記録中略

設定ページ整備エクスポート機能実装からの改行交度正規化についての検討修正作業終了

KNEST では,入力適宜正規化することにより,原則として改行交度LF として扱うことにした。これまで曖昧だったため,出場dln にも LFCRLF混在しておりDex での処理前いちいち正規化していた出場CRLF置換し描出時正規化することにした。

libxtdHTTP ライブラリ仕様にすることも考えたが,低層いちいち厳密な検査などをしていると必要性に対して高コストになる。必要な場面限られているため,KNEST扱うべきと判断した改行交度正規化用の Dex::nmlz_v()KNEST::nmlz_v()移動した微妙に使いにくい位置にあり適当に写し貼りして使っていたのですっきりした

改行交度仕様決めておく必要があるエクスポート機能実装きっかけとなったが,これで将来的な混乱防げ多少無駄な処理削れた

領下手定め環境では置換交度修正手定め済みだが,急がないため未出振るい


エクスポート機能では LF決め打ちにするつもりだったが,仕様見通しも良くなったので CRLF選択出来るようにすることにした。

Windows 向けCRLFWindows 以外向けLF として,用影簡単に初期値切り替えておけ十分だろう。


なぜ混在していたのかと思ったら,フォーム送信では CRLFXMLHttpRequest では LF というややこしい仕様の違いがあったらしい。前縁ではある時期から XMLHttpRequest主に使うようになっているため,実装の変化によるものだろう。

{デライト}{希哲17年4月10日の開発}{希哲17年4月10日の進捗}{希哲17年4月10日}{時印形式}{置換しておいた}{一箇所}{自動化した}{書き換えてきた}{一部省略}...=}(148)

{希哲17年4月10日12歩 K#F85E/E74C-A47E}

進捗時限記録中略

隠し破りKNEST一部として体系化することにし,仕様まとめ交度修正などを一通り終えた緊急性低いため未出振るい

KNEST では,%Y%m%d%H%M%S 形式求頼変数隠し破りとして扱い(例:?20230101000001デライトでもこれで統一することにした。この時印形式を「詰め込み時印ts_jam呼んでおく

隠し破り導入以後スクリプト装体書などの主要静的譜類には ?upd=K170101.1 のように,希哲紀元での日付連番形式基本的に使ってきたが,自我アイコン隠し破り対応では ?icon&upd=[Unix 時間] になったり,添付譜類では ?[Unix 時間] になったりと,統一感なくなってきていた

実用上なんでも良かったが,譜類添付機能実装以降用者目に触れやすくなったため,簡潔さ分かりやすさ両立させる必要性感じていたUnix 時間では非技術者理解しにくいし,技術者でも意図理解するのに時間がかかるそれが不安繋がることは好ましくない特に簡潔というわけでもない。

確実性重視するならハッシュ使うのが定石だが,抽象性が低いということでもあり,擬制的扱いにくく融通が利かない場面出てくる冗長さ一部省略何とかなるにしても,やはり分かりにくい

総合的に詰め込み時印のみが一番無難だろうと結論付けた更新時印でも整合性を保つやり方いくらでもある用者意図推測しやすく,開発者手動ったり異常に気付いたりしやすい。

強いて欠点を挙げるなら,更新日時知られたくないいるかもしれない,ということくらいだが,デライトでは大きな問題ではないだろう。そもそも更新履歴見られるサービス投稿同時に上信される SNS なら秘密情報ではない。

ウェブ捌き設定などで小細工しやすいように,upd= なり mod= なり ts= なりのとして表現することも再考したが,として扱うことを想定していない文字列という特殊性鑑みると,それはそれで違和感がある14桁数字列求頼変数隠し破り,と明確に決めておけば十分だろう。


これを機にこれまでいちいち書き換えてきた主要静的譜類用の隠し破り更新も,mkbld-etc自動化したテンプレート一箇所書き換えればいいようになっていたものの,積み重なるそれなりの手間だった。

自動化するまでもない隠し破り記述いくつか残っているが,これは ?upd=K170101.1 なら ?20230101000001 というように置換しておいた

{十分}

{}