みーのぺーじ

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

2021-01-01から1年間の記事一覧

Djangoの開発サーバーではデータベース接続を維持してはいけない

Djangoのrunserverコマンドを使用して開発している時に,たくさんのリクエストを行うとデータベース接続数が次第に増えていき, FATAL: sorry, too many clients already` というエラーが発生する現象に遭遇した時のまとめです. 環境 Django 3.1.6 'CONN_MA…

Pythonのloggingでデバッグ

Pythonのloggingはとても便利です. logging --- Python 用ロギング機能 — Python 3.9.1 ドキュメント logging.debug(msg, *args, **kwargs)関数には便利なキーワード引数が存在します. stack_info logging.info("test", stack_info=True) これだけで,スタ…

スポーンされた

Google翻訳が独創的な翻訳をしてくれました. なお,ちゃんとした文章を入力したところ,ちゃんとした翻訳をしてくれました. ちなみに,DeepLは,ちゃんとした文章も独創的に翻訳してくれました.

GitHub Actionsでブランチ毎のSecretsを取得する

Git

おそらくGitHub Actions Environmentsで簡単に実現できることだと思うのですが,privateレポジトリでは使えないので,少し工夫してブランチ毎のSecretsを取得できるようにしました. 要件 testブランチのpushイベントで起動したら,VAL_TESTという名前のsecr…

GitHub Actionsのストレージ容量

Git

GitHub ActionsでArtifactを扱っていたところ,突然以下のようなエラーが出て実行できなくなりました. Create Artifact Container failed: Artifact storage quota has been hit. Unable to upload any new artifacts. 無料プランでGitHubを利用していたの…

GitHub Actionsのworking-directory

Git

GitHub Actionsのworking-directoryで少しハマったのでメモします. defaults.run ワークフロー中のすべてのrunステップに対するデフォルトのshell及びworking-directoryオプションを提供することができます。 GitHub Actionsのワークフロー構文 - GitHub Do…

Pythonのグローバル変数のメモ

以下の記事がとても有用だったのでメモします. Why am I getting an UnboundLocalError when the variable has a value? - Programming FAQ - Python 3 以下のスクリプトは実行されます. x = 10 def bar(): print(x) bar() 10 x=1を追加すると,UnboundLoc…

Djangoで作成したDockerイメージをVS Codeでデバッグする

VS CodeのPython拡張機能を使うことで,Pythonスクリプトを簡単にデバッグすることができます.これをDockerで実行中のDjangoプロジェクトで使用できるようにします. Python - Visual Studio Marketplace debugpyとVS Codeの設定 r.py launch.json Dockerで…

独自ドメインのメールアドレスを運用するためのDNS

独自ドメインでメールアドレスを運用する時の注意点をまとめました. DNSレコードの設定 MXレコードを設定します.これによりひとまずメールが扱えるようになります. DNSレコードの編集 | レンタルサーバーならエックスサーバー MXレコードの優先度は,慣例…

Djangoからpostgresデータベースに効率よく接続する

Djangoで作成したWebアプリケーションをCloud Runで実行して,Cloud SQL postgresに接続する負荷テストを実施していたところ,以下のエラーが発生しました. psycopg2.OperationalError: FATAL: remaining connection slots are reserved for non-replicatio…

Google Cloud Platformのプロジェクト数の割り当てを増やしてもらった

Google Cloud Platformで,プロジェクトを作成して使わなくなったら削除を繰り返していたら,プロジェクトがあと2個しか作成できなくなってしまいました. 初期設定では25個のプロジェクトが作成可能な割り当てでした.プロジェクト数は削除したらすぐに減る…

Cloud RunでDjangoの快適なlogging設定

Cloud RunでDjangoのプロジェクトを快適に実行するためのloggingについてまとめます. 実行環境 Python logging logging.Logger logging.Handler logging.Formatter logging.Filter logging.config.dictConfig DjangoのLOGGINGの設定 Cloud Logging 認証の準…

シェルスクリプト まとめ

シェルスクリプトはなんとなく書けるけど,なんとなくしか書けないので,改めて自分用にシェルスクリプトをまとめました.$ から始まる行を実行し,結果を次の行で示します.概ねThe Shell Scripting Tutorialを参考にしています. 実行環境 Hello World! 変…

Cloud FunctionsとCloud Runの処理速度を比較する

CPUが律速となる処理を行うのに適したサーバーレス環境を選定するために,ベンチマークなどを行いました.候補はGCPのCloud FunctionsとCloud Runです.AWSやAzureなど他のプラットフォームは検証しません. 注意事項 Cloud Functions 256 MB 400 MHz 1,024 …

ブラウザのスクリーンショットを利用したWebサービスをpuppeteerで作る

URLが含まれるリクエストを受け付けて,そのURLにブラウザでアクセスし,描写された内容をスクリーンショットしてPNG画像を生成し,その画像をレスポンスするWebサービスを作成した時の話です. なお,このWebサービスはみーが個人的に利用するために作成し…

不良セクタが報告されたのでSynologyのHDDを交換した

我が家ではSynologyのDiskStation DS218playがNASとして稼働していて,ファイルの共有に使用しています.RAID1で2台のHDDを使用しています. 数ヶ月前から 不良セクタが報告されるようになり,まぁいいやと放置していましたが,やっぱり気になるので新しいHD…

Cloud Deployment Manager まとめ

自分の勉強のために,Cloud Deployment Managerについてまとめました. Terraformとの比較 Cloud Deployment Manager の最小構成 create update delete jinjaテンプレートを使用する template_pubsub.jinja main.yaml 環境変数 template_pubsub.jinja main.y…

Pythonのmultiprocessingで色々な並列処理をする

Pythonのmultiprocessingを使って,並列処理を色々とやってみて,動作を確認してみました. 環境 CPU 3.2 GHz Quad-Core Intel Core i5 macOS 10.15.7 Python 3.8.6 4個のプロセスで関数を4回並列実行する import multiprocessing import time import os def…