みーのぺーじ

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

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がありますが…

Fluent Python, 2nd Edition を読了した

Fluent Python 2nd Edition を読了しました. Fluent Python (English Edition)作者:Ramalho, LucianoO'Reilly MediaAmazon 初版は2015年に発売され情報が古くなっていたのですが,2022年4月に第2版が発売されたのでさっそく読んでみました.新しい本なので…

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 Documentation 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システムの仕組み作…

DockerでCUDAを使用するための準備

GeForceなどCUDAに対応したグラフィックボードをDockerで使用するために必要な準備をまとめます. 結論 Docker EngineとNVIDIA Container Toolkit をインストールする. 環境 Ubuntu 22.04 LTS Intel(R) Core(TM) i5-12400 NVIDIA GeForce GT 1030 Docker En…

Raspberry Pi Zero WからCloud Storageにアップロードする

www.raspberrypi.com Raspberry Pi Zero Wとは,2000円程度で購入できる,以下の性能のシングルボードコンピュータです. 802.11 b/g/n wireless LAN 1GHz, single-core CPU 512MB RAM CPUはARMv6で,WiFiも搭載しているため,pythonの実行結果をGoogle Clou…

WireGuardで理想のVPNを目指す

OpenVPNのpacket loss WireGuardでVPNを構築する サーバーのIPアドレスを設定 WireGuardを設定 Serverのwg0.conf Clientのwg0.conf WireGuardをサービスとして登録 ファイアウォールを設定 OpenVPNとWireGuardの比較 OpenVPN WireGuard 各OSのClient MacOS …

dockerコマンドが動かなくなった

以下の全てのコマンドを実行しても何も応答がない状況になった. $ docker version $ docker ps $ docker help $ docker 直前に,docker daemonを実行しているホストを変更したので,これが原因のような気がした.docker contextコマンドでリセットしようと…

LANケーブルを自作するべきか

LANケーブルは完成品も販売されていますし、ケーブルを購入してお好みの長さのものを自作することもできます。費用対効果を検討してみます。 自作する場合 エレコム RJ45ツールキット LD-TOOLKITエレコムAmazon 最低限の必要な工具です。2022/06/04現在 6,84…