みーのぺーじ

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

Workload Identity で Github Actions を快適に認証する

Google Cloud の Workload Identity を使用して,Github Actions から認証できるように設定します. Workload Identity とは Workload Identity を設定する サービスアカウントとして認証する .github/workflows/oidc.yml 監査ログを使用する 許可する範囲を…

GA4 と UA のユーザー数が異なる問題

みーが運営しているブログに Google Analytics 4 (GA4) と Universal Analytics (UA) の両方を導入してアクセス解析をしています.2022年10月頃までは両者のユーザー数はほぼ同じ (誤差1%程度) で推移していたのですが,11月頃から, GA4 のユーザー数のみが…

快適なインターネット回線

通信速度が最大 1 Gbps のインターネット回線を使用して,windows 11 のISOファイルをダウンロードしたところ,400 Mbps 程度の速度でダウンロードできました.約 5 GB の巨大なファイルでしたが,2分もかからなかったです*1.画面を眺めているだけで完了し…

ルーターのLED省電力設定による消費電力

Elecomの無線LANギガビットルーター WRC-2533GHBK2-Tに,LED省電力設定という機能があったので,有効/無効を切り替えて,実際の消費電力を測定してみました. www.elecom.co.jp 消費電力: 約12.0W 有線LANを1個接続し,無線LANを2.4GHz/5GHzで有効にした状態…

機械学習のライブラリの検討 2022年

機械学習のライブラリは,以下が有名です. TensorFlow Keras PyTorch なお,KerasはTensorFlow 2に同包されているので,実質TensorFlow と PyTorch の対決です. Google Trends TensorFlowのほうが先に公開されており,2020年までは人気でしたが,2021年頃…

iPhone SE のバッテリーを修理した

みーのiPhone SE (第1世代) のバッテリーが膨らんできて,バッテリーの最大容量が78%にまで低下しました. バッテリーさえ交換すればまだ使えそうな印象だったので,自分で修理することにしました.ひとまず,iFixitの修理方法に従い,膨らんだバッテリーを…

StripeのWebhookとWrite Skew

SQL

Stripe Webhookを使用する時の注意点をまとめます. Webhookの仕様 https://stripe.com/docs/webhooks/best-practices イベントは1回以上配信される. 2xx HTTPステータスコードで応答しなければリトライされる. イベントの順番は保証されない. 顧客の作成…

ライズのディスプレイオーディオでmoviLinkのナビを使う

この記事の情報は,ディーラーのスタッフにたくさんの質問をして得られたお答えと,下記の参考資料をもとに,独自にまとめたものです.この記事の内容には誤りが含まれる可能性がありますし,うまく動作しないかもしれませんが,一切の責任は負いませんので…

Cloudflareでリダイレクト

Cloudflareにはリダイレクトをする機能がいくつか存在しますが,Page Rulesを使えば,CloudflareでDNSを管理しているドメインについて簡単にリダイレクトを設定できます. ここでは,laflabo.netというドメインを用いて説明します.以下の設定画面に掲載され…

全ての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…

監視カメラの弱点

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

terraform importで簡単にtfファイルを作成する

Terraformには,importコマンドが用意されており,既存のインフラストラクチャをTerraformに読み込めます. Command: import | Terraform by HashiCorp Terraformのドキュメントを眺めながら.tfファイルを手入力で作成するのもよいのですが,サービス提供元…

ログベースの指標は作成後に集計される

Google Cloud Platformでユーザー定義のログベースの指標を作成し,ダッシュボードにグラフで表示しようと思ったのですが,作成直後にデータが表示されずに困りました. 原因 ログベースの指標は作成後に集計されるため,しばらく時間を置かないとデータが表…

機械学習に必要なデータ数の検討

前回の記事でRNNのモデルを用いて加算と減算を学習しましたが,最低限必要なデータ数はどれぐらいなのか検討してみました. 教師データは24896個ありましたので,全部使用(1),1/2を使用(2),1/5を使用(5),1/10を使用(10),1/20を使用(20),1/50を使用(50)…

RNNで加算と減算を機械学習する

前回の記事では,データは固定長という制限がありました.可変長データを扱えるように,Embedding Layerを用いたRecurrent neural network (RNN)で学習してみます. 可変長データの扱い RNNなので,可変長の入力を扱えますが,学習するためには1個のTensorに…

加算と減算をEmbeddingで機械学習する

word2vecが流行っており,可視化されたデータも公開されています. http://projector.tensorflow.org/ 例えば"town"の近傍を検索すると,以下のような結果となりました. word distance village 0.355 city 0.366 towns 0.411 province 0.486 county 0.488 n…

train_test_split()はデフォルトでシャッフルされる

教師データを,訓練データと検証データに分ける関数sklearn.model_selection.train_test_split()が便利そうだったので使ってみました. sklearn.model_selection.train_test_split — scikit-learn 1.1.1 documentation この関数の引数にshuffleがありますが…

DeleteキーとBackspaceキー

キーボードには,DeleteキーとBackspaceキーが存在します. キートップの印字と機能の違い 日本語キーボードは以下のような配置になっています.これをWindows 10に接続して使用すると,Backspaceキーを押すとカーソルの前の文字が消され,Deleteキーを押す…

netplan.ioでデフォルトゲートウェイを1個に限定する

*1 ネットワークを設定する時に,デフォルトゲートウェイが複数存在するとインターネットにうまく接続できない場合があるので,1個に限定して使用します. 以下では,Ubuntu serverに2個の有線LANのインターフェイス eth0, eth1 が存在し,netplan.ioで管理…

The Art of Readable Code を読了した

The Art of Readable Code を読了しました. The Art of Readable Code: Simple and Practical Techniques for Writing Better Code (English Edition)作者:Boswell, Dustin,Foucher, TrevorO'Reilly MediaAmazon 翻訳本はこちら. リーダブルコード ―より良…

Macを操作できるフットペダルを自作する

Macをフットペダルで操作できたら楽しそうだと思ったので,たまたま余っていたマウスと,たまたま余っていた電子ピアノのフットペダルを合体させ,Macを操作できるようにしました. こちらが余っていたマウス ロジクール M705 です. ロジクール M705m ワイ…

TensorFlowをCPUとGPUで比較する

TensorFlowを安価でなるべく速く実行するにはどのような環境がよいのかを自分なりに検討してみました. 測定方法 以下のスクリプトを実行して,速度を比較します.環境変数CUDA_VISIBLE_DEVICESでGPUの利用するかを指定します.環境変数TF_ENABLE_ONEDNN_OPT…

devcontainerでcuDNNを使う

Visual Studio Codeのdevcontainerを利用すれば,自分好みの開発環境をDockerfileにまとめられるので便利です.今回は,PythonでTensorFlowを高速に実行するために,devcontainerでGPUを利用できるようにします. 始める前に,DockerのホストにCUDAのドライ…

Dockerのコンテナやボリューム,イメージの一括削除

結論 docker system prune --all --volumes docker system prune docker system prune docker system prune ならば,停止したコンテナ,ネットワーク,宙ぶらりんイメージ(dangling image)を一括で削除します.--allオプションを追加するとイメージも一括で…

How Linux Works, 3rd Edition を読了した

How Linux Works, 3rd Edition を読了しました. How Linux Works, 3rd Edition: What Every Superuser Should Know (English Edition)作者:Ward, BrianNo Starch PressAmazon 翻訳書はこちら. スーパーユーザーなら知っておくべきLinuxシステムの仕組み作…