t_wの輪郭

https://twegaku.towasys.com/

2023年1月8日

  • サーバーにいい感じのキャッシュプログラム(octpepper)を構築
    • バズっても大丈夫(なはず)になった
    • 検索の高速化にも使えるはずなので、追々やりたい

2023年1月5日

  • トップページの説明用画像をクリックすると、https://twegaku.towasys.com/undefinedにリダイレクトされるバグを無理やり修正
    • 問題の原因は大体洗い出したが、良い解決法が見つからなかったためいったん臭いものにふたをした
      • なぜかリンクから遷移したときに/[board_id]リダイレクトされない
        • 要求ヘッダーが想定した値になっていない
      • なぜかgetServerSidePropscontext.res.end()後にウェブページのレンダリングが生じる
      • なぜかgetServerSidePropsからpropsで渡したboard_idの値が取得できず、undefinedになる
    • 再発したら根治を目指す

2023年1月5日

  • boardの新規作成後に、最初の手書きが消えるバグを修正
    • 無限ローディングが起こっていた

2023年1月4日

  • ダークモード対応
    • 上部メニューの歯車からダークモードを設定可能

2022年12月24日

  • pngファイルの出力を高速化
    • SNS(特にFediverse)にTwEgakuのリンクを投稿しても、サーバーが止まりにくくなった
    • まだ最適化の余裕があるので、負荷が問題になってきたら頑張る
  • WebPの出力に対応
    • ~.svgを~.webpにすると使える
    • pngの10%ぐらいファイルサイズが小さい
    • エンコードがpngより時間がかかるらしいけど、それ以外にかかる時間の方が圧倒的に長いので、ほとんど差がない
    • リンク投稿時のサムネイル画像はこちらにしておいた

2022年12月22日

  • Share機能を追加し、ブラウザが対応していれば、Twitterなどに共有できるようにした
  • トップページで手書きを試せるようにした
  • ドロップダウンメニューのデザインを変更
  • 消しゴムのサーバー負荷を軽減した
  • Firefoxでログインできないバグを修正
  • Android Chromeでドロップダウンメニューを閉じられないバグを修正

2022年12月21日

  • TwitterでTwEgakuのリンクを投稿すると、サムネイルとして画像が表示されるようにした
  • UIのボタンを大きくして押しやすくした
  • 検索できないことがあるバグを修正
  • 非ログイン時にboardに表示される、トップページへのボタンを変更した

2022年12月20日

  • ログインした状態でブラウザーを再起動すると、トップページでリダイレクトを繰り返すバグを修正
  • 消しゴムの当たり判定を表示
  • 消しゴムを早く降ると、当たり判定が大きくなる機能を追加
  • 検索アルゴリズムを変更
    • 検索精度が上がってるはず……

2022年12月19日

  • たくさん書くとカクついていたのをカクつきにくくした
    • WebGL2での線の描画を高速化した
  • トップページの手書きの例を増やした

2022年12月18日 午後

  • 手書き検索の速度をアップ
  • 手書き検索の精度をアップ

2022年12月18日

  • 手書きの描画を高速化
    • 描画をSVGからWebGL2.0に移行
      • スタイルを当てて、見た目を変更してた人には影響があるかも
      • ポリゴン描画方式の変更で、手書きにブツブツが出なくなった
    • 手書きの追従性UP
      • 書く時の快適度が上がった
    • 視点移動が滑らかになった
      • 手書きが多くなるとカクつきがちだった。特にChromeで
  • 消しゴムの処理を改善
    • 線がすぐ消えるように変更
    • 通信失敗で「消したのに消えてない」が起きる率を低減
    • サーバーの負荷軽減
      • まとめて削除命令がサーバーに飛んでいたので、処理が重たかった。時間方向に分散させた

2022年12月16日

  • なげなわで手書きを選択して検索する機能を追加
  • PWA起動時のリダイレクトを不要にした
  • 内部品質向上
    • 視点移動アルゴリズムのリファクタリング
      • 「移動 → 拡大縮小 → 移動 → 移動」 ってなってたのを一つの行列にまとめた
      • 処理が軽くなるかと思ったがそれほど変わらなかった
    • headerとfooterの固定方法(CSS)をfixedからflexに変更
      • headerやfooterに要素を追加するのが楽になった

2022年12月14日

  • トップページのデザインを変更
    • ロゴを表示
    • 手書きの例を表示
  • 登録時のパスワード要件を変更
    • 特殊文字を不要に変更
    • パスワードの文字数を最低8文字以上から最低10文字以上に変更

2022年12月13日

  • 手書き一覧画面(boards)で、手書きの量が多いboardの視認性を向上
    • 線の太さを一定にした
  • 手書きの表示時に、作成者でなければ広告を表示
    • 作成者が編集する際には広告は表示されないので邪魔になることはない
  • ログイン時にboardsへのリダイレクトを早くした
  • 検索機能使用時の通信量と描画負荷を低減した
  • 手書き画面で表示領域を記録し、再表示時やほかの人が表示する際に過去の表示領域を再現

2022年12月12日

  • 意図しない線が描画されるバグを修正(消しゴムの軌跡が描画されていた)
  • ボード(手書き)の一覧画面の通信量を削減(svgファイルをサーバーから取得するのではなく、軌跡データをサーバーから取得して、それをsvgとして描画するようにした)
  • ボード(手書き)の一覧画面の描画負荷を削減(軌跡データをsvgのpolygonで描画するのではなく、svgのpolylineで描画し、svg内の要素数を削減)

2022年12月11日

  • 画像ページ(/[board_id])での視点移動・拡大縮小を実装
  • ~~.svgのファイルに背景色を設定し、SNSでカード表示されたときに見やすくした

2022年12月10日

  • OGPに対応し、SNSなどにURLを投稿すると、画像などの情報をカードで表示
  • ~~.svgにアクセスすると、編集可能なデータであればそのまま編集可能にした
  • iOSで画面端をスワイプすると、画面を戻れるようにした
  • PWAに対応し、インストールできるようにした
  • svgファイルのサイズを約半分に小さくした

2022年12月9日

  • 指での手書きを無効化するボタンを追加
  • 手書きの一覧表示画面追加
  • svgファイルのホスティング機能追加
  • 利用者認証機能追加
  • 検索機能追加
  • 線の平滑化機能追加

2022年11月27日

  • iPadでの拡大縮小を無効化
  • iPadでの指での手書きを有効化
  • iPadでApple Pencil使用時にスクロールする問題を解決

あれ

2022/12/13 23:05:00

手書き画面で表示領域を記録し、再表示時やほかの人が表示する際に過去の表示領域を再現

これがめちゃくちゃ面倒だった。数式こねくり回して何とか実装したけど、まだ完ぺきな動作に至ってない。

数式こねくり回した記録

あれ

2022/12/13 23:06:00

 ちなみにGoogle AdSenseの機嫌次第で、広告は表示されたりしなかったりする。クローラーが巡回して、妥当なコンテンツでないと判断されると広告が配信されないらしい。

後、Firefoxでトラッキング防止機能が有効化されてると広告が表示されない。なんでだ。