みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

全てのGitレポジトリのバンドルファイルを作成する

とあるディレクトリに保存されている全てのGitレポジトリのバンドルファイルを作成するシェルスクリプトを作成しました. #! /bin/zsh mkdir -p bundles for dir in * do if [ -e $dir/.git ]; then cd $dir git bundle create ../bundles/$dir.bundle HEAD …

MacOSのshはzshではなくbash

macOSのシェルスクリプトの挙動を見ていて気づいたのですが,macOSのshはzshではなくbashです. 環境 macOS Monterey % sw_vers ProductName: macOS ProductVersion: 12.5.1 BuildVersion: 21G83 検証結果 macOSのターミナルにて,以下の通り実行されました…

Djangoでsync_to_asyncの性能を測定する

Djangoで非同期処理を実装するときに,非同期ではない関数を使用するためのアダプター関数 asgiref.sync.sync_to_async() が用意されています*1. sync_to_async()関数は,SyncToAsyncクラスを使って,スレッドプールで実行可能な非同期関数を作成する仕組み…

Django async viewを使用してCloud Runで並行処理をする

一般的にWebサーバーの開発は非同期処理と相性がよいです.Webサーバーは不特定多数の人から任意の時刻にリクエストを受信して処理し,レスポンスを返します.Webサーバーの処理の多くは,データベースなど外部のリソースにアクセスすることなので,I/O boun…

OSI参照モデルの覚え方

OSI参照モデルとは,通信プロトコルを7つの階層に分けて定義したものです.国際標準化機構(ISO)によって策定されました. Layer Number Layer Name Description 7 Application アプリケーション層 Home of the protocols and services that comprise an appl…

Cloud Runでアクセス元のIPアドレスを取得する

結論 Cloud Run で,アクセス元のIPアドレスを取得するには,x-forwarded-forヘッダーを使用します. 検証 リクエストヘッダーを返すWebサーバーを作成して,Cloud Runにデプロイし,動作を確認しました. main.ts import express from 'express'; const app…

監視カメラの弱点

監視カメラは,事件が発生したときの映像を残すために設置するものですが,犯人が監視カメラそのものを破壊したり取り外したりする可能性もあります. もし,監視カメラの映像が本体に記録されていると,映像データも一緒に破壊されたり盗られたりするかもし…