ウェブサイト改訂

基盤:今日 WordPress を 5.3 から 5.4.1 にアップデートしたんですが、少し副作用がありました。

基盤:ひとつには、何も入力をしないで検索した時の動作です。以前は全固定ページ+ポストを表示しましたが、今は警告で終わるようになりました。ただ、サイドバーの中にある検索ウィジェットは以前のまま。何も入力しないで検索=全表示になります。良し悪しあるので当面このままにします。

基盤:もう一点は、サイドバーの中にあるウィジェットのメンツと並びで、デフォルトっぽい「アーカイブ、カテゴリー、メタ情報」が先頭に追加されました。WordPressというより、テーマ(TwenteenSeventeen)をアップデートしたせいだったかもしれません。とりあえずこれは消しました。

基盤:プラグインとの整合性での問題は発生していないようです。もともと、すごく基本的なのをいくつか入れてるだけですしね。

基盤:ただ、アップデート完了直後は問題なく動いているように見えたあと、1〜2分間でしたか、「PHPの版が…」「データベースが読めない…」的なエラーが出て、サイトが表示不能になったのはびびりましたねー。すぐに正常になりましたが。

基盤:この際にと、現在のテーマ(TwentySeventeen)以外のものも試してみたのですが、やはり、すくなくとも本家提供のテーマでは、TwentySeventeen 以外に、スッピンで使い物になる(中身を工夫しなくてもそれらしく見える、デスクトップでもスマホでもそこそこいい感じ)ものは無いですね。外観を微調整したり、そのテーマを想定してコンテンツを作る必要があるように思います。なのでまた当面、TwentySeventeen で行きます。

基盤:あと、お問い合わせフォームについては、これまで使っていたフォームプラグインはやめて、WordPressのデフォのコメントフォームに戻しました。一つにはこれなら何もせずに reCAPTCHA が使えるからです。プラットフォームとプラグインの整合性の問題をここで実体験しました。というか、問い合わせフォームとか、手打ちのHTMLで十分だと思いますので、いずれそうしたいと思います。そうですね、details なんかも使いたいですね (^-^)

基盤:あと、入れておいたシンプルなカウンターウィジェットで、WordPressダッシュボードから、ページごとのアクセス統計が見られることがわかりました。以前からそうだったのかわかりません。それによると、どうもサイドバー中の投稿一覧に表示されているページへの(ほぼロボットさん達からの)アクセスが多いようでしたので、最近の投稿100件分をサイドバーに表示するようにしてみました(笑)。

基盤:そういう表示の仕方は、ユーザの立場に立ってみても、投稿一覧を見るのに良いビューの一つだと思います。さらにはサマリーを数行追加するビューがあっても良いかと思います。で、切り替えは details 的にやるとか。サイドバー上のアンカーのリストは動かず、ページをPreview的に切り替えるのに良い手段だと思います。まあもともと、サイドバーというかフレームというかは、そういうものですね。

基盤:初期にブログ以外のページにもサイドバーを入れようとして導入したプラグインも、使えてなかったので捨てました。別のプラグインが使えることは他のサイトで試してわかっているのですが、そもそもそのように出来ていないのは、TwenteenSeventeen というテーマの趣旨なんだろうと思います。逆に、ほぼ全てのページをブログ(投稿)ページとして作るくらいが、趣旨に合っているし、当社での使い方にも沿っているように思います。

基盤:そういうわけで、使わないプラグインは全部切って、残ったのはカウンター、reCAPTCHA、details/sumamry block、あと XSOnamaeのキャッシュ制御用のプラグインだけになりました。XSOプラグインはどうも効いてない感じもあるので、これも切るかもしません。また、WordPress 5.4.1 ではブロックの編集機能が大幅に改訂されたとありますので、編集用のプラグインが不要かもしれません。本来そうあるべきです。結局、残るはカウンター系だけになります。

基盤:それで実はカウンターも、外部においたほうが管理しやすい。ページ生成する際に、サーバにアクセスした結果を data URI なりで埋め込む汎用の機能があれば十分です。つまり Server Side Include だけできれば良い。これの可否が鍵です。それと、reCAPTCHAもカウンタの一種ですが、あいつを思い通りに制御するには、自分で足回りを作りたい。

基盤:そもそも当社がこのWordPressに置いているのは、全て公開用のデータです。隠したいとすれば、カウンター情報というか、アクセス履歴くらいです。それをWordPressにおいておくのは嫌な気もするわけです。そういう意味でも、カウンターは外部に置きたい。たとえば Google Analyticsを使っても良い。毒を食らわば皿までです(笑)

基盤:お客様の問い合わせも、WordPressには残したく無い。この点で、問い合わせがWordPressのコメントフォームになっているのは問題です。ディスカッションに2系統の設定が出来ないなら、メール等に直送する自前フォームにする必要があります。そもそも Googleフォームに飛ばしても良いです。一体感を醸すには iframe に表示するとか。

基盤:そういうわけで、最終的には第三者製のプラグイン全く無しになる可能性があります。

社長:大変スッキリしますね。

基盤:そもそも皿まで食うなら Google Sites なのですが、あれがタコなの諸悪の根元、という結論になるかも知れませんね。

社長:まあ、Google は基本、インフラ屋だよね。UI系はしょぼい。Gmail、どうにかならんかねコレ(笑)。まあUIまで寡占されたら恐ろしいけど。MSのUIがXSOなおかげで世の中は救われたのかも知れないし。

--
SatoxITS

「最近」x「使った」x「あれ」

社長:最近使ったあれに対する高速アクセスとか検索手段を一元化したいですね。

開発:「あれ」というのは。

社長:まあ、ファイルやウェブページは当然ですけど、ウィンドウとかタブとか、ページの中の地点とか。まあオブジェクトというかリソースというか。あらゆるもの。神羅万象ですね。

開発:となると、揮発性のものも含めて全てのオブジェクトや現象にユニークIDをふる、サブジェクト側の関与方法にタイムスタンプを付けて履歴として保存する。そういう感じですかね。

社長:そう、履歴、ログ、ジャーナル、いわゆる5W1Hの記録。基本はタイムスタンプとメソッドと、サブジェクトとオブジェクトですね。

社長:あと、オブジェクト側が勝手に変わったというのもありますね。まあ因果をたどればどこかのサブジェクト側の関与に行き当たるでしょうけど。そのマシンを購入した、とか。

開発:因果のネットワーク化はその場では難しいでしょう。まずは事象を記録する。原理的には、サブジェクト側は、キーボード入力列と、マウスのポインタ位置、ディスプレイの録画をずっととっておけばよさそうです。足すとしたら血圧・体温・気温とか。気分とか(笑)

基盤:アップルウォッチとか?ディスプレイの垂れ流し録画はHDMIに市販のレコーダを挟むのも手かも。あるいはドラレコ。

社長:まあ、自分をカメラで撮影してデスクトップの隅に表示しとくとかかな。それで気分が悪くなるかも(笑)

社長:オブジェクト側は、まあOSの動作、特にファイルやウィンドウの操作プリミティブの履歴をとっておけば、かなりカバーできそうな気がする。アプリケーション内の状態の変化は個別アプリでやらないといけないけど。まあこれは既に伝統的に、個別にやられている。

開発:実現性を考えると、課題はデータ量と処理用ですね。データ量的には、パソコン内の神羅万象を記録するとしても1Gbpsくらいですかね。不可能ではない数字。記録方法としては、流し撮りでしょうね。ドライブレコーダ的な。

基盤:実際、ディスプレイはドラレコでよさそうな気もしますね。ただちょっと、コンパクト化するために割高になってるかも?

社長:とりあえず撮っといて、暇な時間にフィルターしたり構造化するんですかね。暇がなかったらざっくりとしか拾えず消えちゃいました残念みたいな。

基盤:ユーザ側で許容できるリソースとしては、ディスク10GB、バンド幅で100Mbpsくらいですかね。CPUも1GHzは欲しいけど、最近みんなマルチコアだからたぶん無問題。ヒストリ処理専用にラズパイとか。

開発:ありものを使うとしたら、そもそもあるスクリーン録画機能を動かしっぱなしにする。ファイル側をそういう特殊なファイルにしてやる、って感じですかね。Unixの穴あきファイルで、前のほうとか中間をトランケートというか解放する機能は実装されたんでしょうかね?50年前からBUGSに記載されたままかな。

社長:それがあればユーザレベルで実装できますね。見た目ヘキサバイトだけど実態はギガバイトみたいな感じですね。64ビットOSだからもうやりたい放題。きっとヘキサバイトの仮想メモリとか単一ファイルなんてのもできるよね。そしたらソフトの作り方もがらりと変わる。てこれ、前世紀から考えられてたことだけど。VMの仮想ディスクのファイルとかどう出来てるんだろう?

基盤:それを知らない cp とか tar とかしたら大変なことになりますけどね。rsync ならまだまし。まあ実装上は、あらかじめフィルターするというのが現実的だとは思いますが。おそらく5〜6桁データも処理も小さくなりますね。

社長:それはサブジェクトたるユーザ側にも大きく依存するしね。なんにしても、個別場当たり的な解決法じゃなくて、いったん大きな風呂敷に神羅万象をくるんで一元的に考えて、そこから個別最適化を考えるのが良いと思うんですよね。個別最適なソリューションを色々考えてきましたが、それはそれで必要ですが、ちょっと飽きたし、やっぱり一網打尽にしたい気分なんです。根っこに手を突っ込みたい。

開発:なんにしろ、後で検索とか分析とかする時に、どんな分解能というか、グラニュラリティが求められているかで、戦略も変わると思います。ボトムアップに、ユーザが求めているレベルの情報を再構成するのは、コストが高いというか、現実的には無理という感じもします。まあ、誰が求めている情報を構築するかなんですが、うちはまずエンドユーザなのかなと思いますし。

基盤:現状利用可能なインタフェースを使うことも必須です。やはりフロントエンド側の入り口は当面、WebDavな気がします。ローレベルで使用するには自由度が非常に低い。実装上、性能面では穴あきファイルですかね。rsync がそれに対応してるのかも気になります。

社長:というか、ユーザとしてデータ読んだだけでは、nil なのかゼロなのか、区別はつかないんだよね…

開発:まあそれは、物理メモリについても言えますね。あっちはまあ、制御できますけど。存在しない実体へのアクセスにどう答えるかという。

社長:論理的にはトランスペアレントでいいっちゃあいいんだけど、out of band で知りたい人には知れるように出来てないと。マスクできる割り込み的な。

開発:せっかく履歴をとるので、undo というかリカバリにも使えると良いですが。

社長:いや私はこないだまで、100マイクロ秒前の世界に10マイクロ秒以内に戻るというようなシステムをやってましてね…

営業:よくわかりませんが、製品化がどんどん遠のいている感じはします。

--
2020-0528 SatoxITS