Chrononglyph

webサイト更新計画

前へ1 / 4次へ
#7938

API検査から始まるweb改修

先週土曜日にサイトをアップデートしたのですが、
その後502エラーが頻発するとの報告を受け、いろいろ調べていました。
結果的にこれがここ1年低迷していたweb制作モチベに火をつけ、
気がつけばずーっと作業していました。


502(Bad Gateway)はサーバーが正常に応答していないというエラーで、
結論から言えばバックエンド側の処理が重過ぎてクラッシュしていたのが原因でした。
なぜいきなりそういう事態に陥ったのかというと、
ある計算式を正常に処理させるために一時的にキャッシュを生成する仕組みを外していたのですが、
それによって都度計算するようになり、これが高負荷の原因だったということですね。


これを検査するために「Laravel Telescope」という応答速度などを測るツールを導入したところ、
キャッシュなしの生成ではなんと45,000msもの時間がかかっていました。
キャッシュを導入したら300msまで減ったので実に150倍の短縮ということになります。
対象となっていた関数はループ内で使われることもあり、
しかもそれなりに重いデータベース処理を行うのでキャッシュは必須だったというわけですね。


ピクチャレ大会は基本的にフロントエンドキャッシュで表示の高速化を実現していましたが、
もはやこれだけでは不十分で、バックエンドキャッシュも積極的に使っていかなければならないと痛感しました。
いままでの作業環境ではそこにメスを入れるのはなかなか難しかったですが、
Laravel TelescopeがあればリクエストしたすべてのAPIが応答速度つきで一覧化されるため、
開発環境をいじっていればネックがどこにあるか簡単にわかります。
こういうツールがあるとやはりモチベは上がりますね。


ちなみに一時的にキャッシュを外して検証していた計算式はランクポイント絡みだったのですが、
数百〜20,000点に収まるはずのポイントが、ある変数が「1以下」になると指数関数的に増えていき、
10の19乗といった膨大な数になってしまうという不可思議なエラーが起きていました。
これ自体が処理を重くしていたわけではありませんが、
数学に疎いとこういうエラーも起こしがちで、今回は致命的にならなくて良かったなと。


ピクチャレ大会改修についてはやりたいことがまだまだ山ほどあるため、
このモチベーションをなんとか維持していきたいところです。


#7654

突貫工事の再整備計画

単純にwebサイトとしてまだまだイマイチ感の拭えないこのブログですが、
整理がてら直近でやりたいことをここで表明しておくこととします。
まずマストなのがフロントエンドとバックエンド処理の切り分け。
ブログ開設直前に作ったフロントエンドはほとんどAIに作ってもらったこともあって
この辺のユーザビリティは最悪と言っても過言ではありません。
なにしろ現状ではdev環境をそのまま公開していてキャッシュを作ることすらできないのですから。
これはセキュリティ的にもダメダメなので、まずはこれをなんとかしないといけない。


あとは構想段階では要らないと思っていた記事リストのみのページですが、どう考えても要りますね。
少なくともトップページのフッターには設置しないといけない。
いま、ブログトップは直近7日分のアーカイブを省略せずすべて読める設計になっていますが、
ここから8日目以前まで遡ろうと思ったら7日前の記事にまずアクセスしてから、
そのボトムメニューであるところの前後記事リンクないし直近3ヶ月分の記事リストから辿らないといけない。
この動線の悪さは最悪です。実際に自分で読んでみてもかなり致命的のように思う。
最低でもトップページに記事リストの掲載は必要でしょう。
その動線を考慮すると、結局昔ながらの2カラム構成の方が合理的のような気がする……。


4代目ブログの運営はまだ始まったばかりでまだまだ安定化が最優先課題ですが、
一方でピクチャレ大会の方で思い詰めていた期間限定ランキングの制作については
ひとまず年内はオンラインイベントを代替とするため不要という結論に達したため、
web制作系タスクについては次はこっちを優先でいいのかなと思っています。
とにかく現状は突貫工事にもほどがある出来なので、最低限しっかりした土台を作りたいところ。
自分で読んでいて「Obsidianよりもwebの方が読みやすいな」と思えるくらいにするのが最終目標です。


既存アプリを個人サイトが越えると言うと大それた目標のように聞こえますが、
実際には文章を読ませるだけが目的なので、上記の動線の問題と、
あとは現段階で非公開の2022年以前の記事を自分だけ読めるようにする認証機能さえあればクリアできる認識です。
その後者については過去にめちゃくちゃ苦戦したこともあり、そこそこの難関だとは思いますが……。
ともあれ、Obsidianはスマホ利用では課金必須ということが分かり(#07635 / 2024年11月11日)、
このままではアーカイブ閲覧だけを目的にするにしても利便性に難があるのは確かなので、
これをwebフロントでどうにかしてカバーしていきたいところです。
こっちもこっちで、なんだかんだでやることは山のようにある。


#7565

HP発展計画

1年目、11年目とリニューアルオープンして2本目の記事はブログの運営方針について書いているので、
21年目の今回もそれに倣おうと思います。


とはいえ、今回のコンセプトはシンプルにして明瞭。1日1本相当を目標とするブログを淡々と続けることです。
初代〜2代目のようなゲームレビュアーとしてのサブコンテンツの産出や、
3代目の「パーソナルWiki」を目指すといった計画は一切ありません。
ただただブログを書き続けていき、可能な範囲でそれを磨き上げていくことだけを考えています。
なので今回、フロントエンドをNext.jsベースのオリジナルに移行しましたがその仕組みもとことんシンプル。
ほとんど1日で完成させたもので、そこにwebクリエイターとしてのこだわりはありません。
従来、自分のネット活動の総本山としての意味合いが強かった本家ブログですが、
これ自体はweb制作のタスクとしては非常に優先度が低いです。
それよりももっと他にやるべきことがたくさんあるし、これ自体は訪問者が増えることを想定していないので。


なので、21年目からはただただ書くことを念頭に置く。余力があれば過去記事を読み整理もする。
それ以上もそれ以下もしないというのが現時点の方針です。
これは承認欲求不足によって迷走していた10年前、20年前の自分には絶対にできない発想でしょう。
誰も認めてくれないようなコンテンツを物陰でコソコソ生み出し続けることに何の意味があるのだろうかと。
確かに、誰かに認めてもらうためという前提で考えると個人ブログほど割に合わない活動はありません。
しかし20年間書き続け、その累積と対話しながらより良い「持論」を作り上げていくという営みは、
どうやら自分の人生にとっては承認欲求云々よりも大切な活動であるようです。
これは前10年のWordPress時代の最後に一時的に非公開運営へ移行し、
それでもなお継続してきた(せざるをえなかった)ことからも明らかです。


15年ほど前にオンラインメモアプリの「Evernote」が登場した当時、
プレーンテキストはもちろん写真から録音、webクリップに至るまで何でも保存できるので
「第二の脳」ともてはやされたことがありましたが、自分にとってはブログがまさに第二の脳です。
約1300万文字の明文化された記録と深層記憶がゆるやかに紐づいていて、
どんなに古い記事でもそれを読み返せば当時の記憶や情景を思い浮かべることができる。
まあ、これは2022年くらいに大きな転機があり文字通りの「今日の出来事」を書き残すことが廃れたため、
それ以降については当時の情景というよりは当時の思想と言うべきかもしれませんが……
(情景を書き残すことも大事だと思うので今後10年はそれも軽視しないようにしたいですね)。


確かに記録することは大変です。第一の脳から手作業でアウトプットしないといけないわけですから。
それに何度挫折しかけたか数え切れないし、非公開化直前は本当にもうやめようと思い詰めていました。
しかし、ブログはその苦労を払ってでもやる価値があるというのが現時点でのスタンスです。
20年かけて育てた結果、せっかく承認欲求不安のしがらみからも解放されたので続けない理由もありません。
むしろ、ここにきてブログという活動にとても伸び代を感じています。
21年目からの10年間が飛躍の時代になればいいなと思っています。


前へ1 / 4次へ