自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • sedコマンドで指定した範囲の行だけ標準出力をする。xselと組み合わせて部分的にクリップボードにコピー

    sed -n "開始行,終了行p" ファイル名 とすることで、指定したファイルの開始行から終了行までのテキストをそのまま標準出力できる。 そのため、xselと組み合わせ、指定したファイルの指定した範囲の行を、ワンライナーでクリップボードにコピーできる。 sed -n "100,120p" ./bbs/views.py | clipcopy ...
  • 【USBブート】NVMe SSD とUSB3.2 Gen.2 の変換器でどこでもUbuntu

    家のメインPCの開発環境を、外のPCでも実現させたいことがある。 これまでは、外用のPCに開発環境をインストールさせる必要があったが、とっても手間がかかる。 その上、家のメインPCの環境が変わるたび、手動で外用のPCの設定を変えていかないといけない。 そこで、メインPCでOSが入っているNVMeSSDを取り出し、USB3.2 Gen.2 に変換する変換器を用意して、以降USBブートさせる。 今回はこちらを使った。 ロジ ...
  • DjangoのセッションをRedisで管理する

    DjangoのセッションをRedisで管理するメリット DB(ディスク)ではなくRedis(RAM)になるので、セッション管理が高速化される 複数のアプリでセッション情報を共有できる マルチノード構成を使って、負荷分散・可用性を高めることができる TTLでセッションの削除を自動化できる。(DBの場合、能動的に削除しない限りセッション情報がそのまま残る) Django-Channelsなどの非同期セッションと ...
  • Djangoでローカルメモリキャッシュを使う

    djangoで一時的にデータをメモリに記録して欲しい場合、ローカルメモリキャッシュを使う。 Redisと違って、プロセス単位で動くため python manage.py runserver を止めたり再起動させたりするとすぐに揮発してしまうが、Pythonオブジェクトの保存もできるため、使いどころを考えればとても便利。 使い方 settings.py に以下を追記。 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', } } これでキャッシュの設定は完了。 続いて、ビューなどの任意の箇所で from django.core.cache import cache topics = Topic.objects.all() cache.set('topics', topics, timeout=60) などとキャ ...
  • 【React】値が変わっても再レンダリングをしないuseRefとuseMemoの違い【デバウンス向けなのは?】

    入力欄に入力をするたび発火をする時、Stateに保存し続けると頻繁に再レンダリングが発動してパフォーマンスが落ちる。そこでデバウンスを採用する。 デバウンスしてキー入力の度にイベントを発火し続けないようにする【再レンダリング地獄対策】 このデバウンスをReactで実装し、setTimeoutのオブジェクトを記録するには、useRefが正解。 同じように値が変わっても再レンダリングをしないhookとしてu ...
  • UbuntuでNvidiaのドライバーをインストールする

    ubuntuにNvidiaグラフィックボードを搭載した時、ドライバーのインストールで詰まったので、まとめておく 【基本】推奨のドライバーをインストールする。 ubuntu-drivers devices NvidiaグラフィックボードをPCに挿し込んだ状態で、上記コマンドを実行する。 以下のように出力がされると思うので、recommendの表示があるドライバーをインストールする。 この場合 driver : nvidia-driver-570 - third-party non-free recommended ここから、nvidia-driver-570 ...
  • Djangoでサーバーのウェブカメラを使ってライブ配信、クライアント側からON・OFF操作

    【Django】任意のタイミングでサーバーのカメラでライブ配信する【imutils.video.VideoStreamer】 ここで、クライアント側からサーバーのウェブカメラの電源をON/OFFできるようにしたが、コードがやや煩雑でわかりにくい。 不要な処理も含まれていたため、まずはサーバー側にあるウェブカメラの映像をブラウザに表示・非表示できるようにした。 ビューのソースコード 要になるビューのソースコ ...
  • デバウンスしてキー入力の度にイベントを発火し続けないようにする【再レンダリング地獄対策】

    ReactはStateの変化で再レンダリングをする仕様である。 Stateの高頻度な変更は、再レンダリングを頻繁に発生させ、表示が遅くなると言った問題が起こる。 この問題を防ぐためにも、キー入力の度にStateを書き換えるのではなく、最後のキー入力が終わって1秒経ってからStateを書き換えるという仕様に仕立てる。 このしくみをデバウンスという。 このデバウンスのしくみはsetTimeoutの操作で簡単に ...
  • Pythonで画像認識AI(深層学習)の速習をするためのメモ【pytorchで画像認識学習・推論のサンプルあり】

    急遽AI開発(特に画像認識)が必要になったため、それに必要な用語や概念的なものをまとめる。 ほとんどがChatGPTの受け売りである。自分用にまとめたのでかなり雑であることをお許しいただきたい。 そもそも機械学習と深層学習の違いは? なんとなくだったため、この際はっきりさせる。 機械学習 簡単な表データを学習して推論したい場合、機械学習が有効。 データ量は数千〜数万件単位でOK。特徴量の設定は手動で行う必要が ...
  • 【Django】DBの保存(投稿と編集)、削除に対して任意の動作をする【signals】

    モデルの保存時、削除時に任意の動作をしたい時、モデルのsaveメソッドをオーバーライドするなどで対応できる。 DjangoでDBへデータ格納時(save)、削除時(delete)に処理を追加する【models.py、forms.py、serializer.pyのメソッドオーバーライド】 ただ、別のモデルに対しても同じ処理を実行したい時、モデルの外部で処理をしたい場合などでは、singalsを使う。 実装 ...