みーのぺーじ

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

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

Oppoのスマホを購入したのでアプリをアンインストールした

OPPO Reno5 Aを購入しました. www.oppo.com プリインストールされた余分なアプリが多かったのでアンインストールしました. Androidの設定アプリではアンインストールできないアプリが存在するので,Android の adb を使います. SDK Platform Tools releas…

python-opencvでWebカメラを一覧から取得する

python-opencvのVideoCapture(index)を使えば,Webカメラを気軽に操作できますが,複数のWebカメラを扱う時にindexをどうやって指定するかが問題となります. MacOSならば,system_profilerコマンドがありますので,これを使えば正しいindexを取得できます.…

PythonでDecimalやdatetimeをシリアライズする

Pythonで少し複雑なデータをシリアライズする時に便利な関数を作成しました.MessagePackとJSONに対応しており,srslyというシリアライズのライブラリを使用しています. import datetime import decimal import json from srsly import msgpack # # Message…

Pythonで日時をISO 8601で扱う

Pythonのdatetimeを用いて,日時をISO 8601で表現します. aware (タイムゾーンあり) か native (タイムゾーンなし) を意識し,isoformat()とfromisoformat()の動作を確認するユニットテストを作成しました. import datetime import unittest class ISOForm…

e-Taxソフト(Web版)が起動しない

法人税でe-Taxを使うことになり,e-Taxソフト(WEB版)にEdgeブラウザーからアクセスしたところ,全く起動しませんでした. ログを見てみると,どうやらdojo.nls.etaxweb_dlparts_en-usが存在しないために止まっているようです. きっと日本語にしか対応して…

Pythonのvenvまとめ

自分用のvenvまとめです. 環境 % sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 % python3 --version Python 3.9.7 venvの初期化 venvはpythonに最初から入っているので,すぐに使える. プロジェクトのディレクトリに移動して,以下のコマンドを…

スマートフォンをバッテリーレスにする

我が家のスマートフォン moto g6のバッテリーが膨張して,背面のパネルが浮いてしまいました. 劣化したバッテリーを使用し続けるのは危険なので速やかに廃棄するべきなのですが,バッテリー以外の機能は問題ないため,バッテリーレスにすれば引き続き使用で…

格安のアンプとジャンクウーファーで快適な2.1chのサウンドを楽しむ

ステレオアンプにトールボーイスピーカー D-109XE(D) を接続して使っていました.重低音があまり出ないのが不満だったので,ステレオアンプを2.1chアンプに置き換えて,サブウーファーを追加することで,重低音を楽しめるであろう構成に替えてみました. 2.1…

Rakuten Linkで電話が繋がりにくい問題に対応する

楽天モバイルは,通信をあまりしなければ月額利用料無料で電話し放題*1なので,サブの回線として使用しています.みーのスマートフォンはデュアルSIMに対応しているので,ドコモ回線のMNVOのSIM(以降メインSIMと表記)と,楽天モバイルのSIM(以降サブSIMと表…

unidic-mecabのid

unidic-mecabのidを一覧できるように掲載します(BSDライセンス).なお,プロジェクトにはleft-id.defとright-id.defが存在しますが,内容は同じです*1. 0 BOS/EOS,*,*,*,*,*,BOS/EOS,BOS/EOS,BOS/EOS 1 代名詞,*,*,*,*,*,*,*,和 2 代名詞,*,*,*,*,*,*,*,混 …

先頭/末尾ではない文字列を表す正規表現

正規表現には肯定先読み (?=...) と肯定後読み (?<=...) と呼ばれる機能があり,先頭/末尾ではない文字列を検索するのに有用なので紹介します. 肯定先読みや肯定後読みを文章で説明するよりも,Pythonのunittestとしてソースコードで表現する方が分かりやす…

ブラウザーで大量の硬貨を表示する

ドイツのベルリン美術館には,500,000個の硬貨が所蔵されており,紀元前7世紀に小アジアで硬貨が鋳造され始めてから21世紀の現在に至るまでの幅広い種類の硬貨があることで有名です*1. この膨大な所蔵品で戯れることが可能なWebサイトを紹介します. uclab.…

Pythonプロセスのメモリ使用量を取得する

以下の関数でメモリ使用量(RSS)が取得できます. import platform import resource def get_maxrss() -> float: system = platform.system() r = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss if system == "Darwin": return r / 1024 / 1024 # byte…

node.jsでERR_HTTP2_HEADER_SINGLE_VALUE

TestCafeを使っていたところ,"ERR_HTTP2_HEADER_SINGLE_VALUE"というエラーが出たので,原因と対応方法をまとめます. node.jsのinternal/http2で"ERR_HTTP2_HEADER_SINGLE_VALUE"というエラーが出るのは,headerに重複するキーが存在するためです. ERR_HT…

&micro;と&mu;が見分けられない

µとμの見分けられないので,コピペ用に記事にしました. µ : MICRO SIGN(U+00B5) μ : GREEK SMALL LETTER MU(U+03BC)

Raspberry Pi4 でBluetoothとWiFiの有効・無効にする

Raspberry Pi 4 Model B にはBluetoothとWiFiが搭載されていますが,サーバー用途で使用する場合など,これらの機能が不要となることもあるので,有効・無効を切り替える方法をメモしておきます. Bluetoothの有効・無効 /boot/config.txt 無効にする: dtov…

YAMLは読みやすいが書きにくい

YAMLのグチを書きますが,みーはYAMLが読みやすくて好きです.ValidなYAMLを書くのが時々難しいという話です. 以下のようなYAMLを作成しました. --- 5E212220: type: normal 5E212221: type: hard 5E212222: type: easy これをparseしたところ,以下のよう…

(mypy)Relative import climbs too many namespaces

mypyが”Relative import climbs too many namespaces"とエラーして,気づくのに時間がかかったのでメモしておきます. プロジェクトは以下のような構成です. src └──b.py a.py b.pyの中身は以下の通りです. from ..a import foo foo() 原因は単純で,src/…

reCAPTCHAを使用するフォームを自動でテストする

Google reCAPTCHAを使用することで,ボットがフォームに機械的なデータを送信するのを防ぐことができますが,フォームが正しく動作するかを確認するためにテストをすると,機械的なデータを送信することになり,フォームを通過できません.このどうしようも…

Singleton

Singletonとは,そのClassのインスタンスが1つだけ生成されることを保証するデザインパターンのことです.先日,Singletonという同名のウイスキーを見かけたので,購入しました. Dufftown蒸溜所で作られた製品だそうです. 味はスムーズで,フルーティーか…

Pythonのリスト内包表記内で同じ名前の変数を使う

以下のようなPythonスクリプトを見かけました. a = [1, 2, 3, 4, 5] a = [a*2 for a in a] print(a) 最初に宣言した変数aと同じ名前の変数aをリスト内包表記内で使用しています. 初めて見た時は意味がわからなかったのですが,問題なく動作します. [2, 4,…

Grafanaのダッシュボードをバックアップする

せっかく作成したGrafanaのダッシュボードが消失すると萎えそうだったので,ダッシュボードをバックアップすることにしました.方法をまとめます. ダッシュボードのエクスポート バックアップしたいダッシュボードを開いて,一番上にある共有ボタンをクリッ…

Raspberry Pi 4Bの初期設定のまとめ

Raspberry Pi 4B をDocker実行環境として常時起動で運用するときの設定をまとめます. microSDにイメージを書き込む Raspberry Pi Imagerを用いてmicroSDにイメージを書き込みます. raspi-config で設定 sudo raspi-config パスワードの変更 セキュリティの…

Vue.jsのv-bindにObjectを使うときはXSSに気をつける

Vue.jsを使うときはDOM-based XSSに注意しなければなりません.例えば,v-htmlがXSSの原因となる可能性があることは有名です. Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to XSS attacks. On…

Google Cloud SQLのインスタンスをprivate IPで扱う

プライベートIPアドレスを割り当てたGoogle Cloud SQLのインスタンスに,Google Cloud Runなどのサーバーレス環境からアクセスする方法を紹介します. 方法 Terraformのgoogle_sql_database_instance,google_compute_network,google_compute_global_addres…

HTTPSのWebサイトの移行は難しい

HTTPSに対応したWebサイトのサーバーを変更するのが困難であるという話です. そもそもWebサイトとは,ドメインのDNSサーバー(=ネームサーバー)が指し示す先に存在するWebサーバーにユーザーがアクセスすることでコンテンツを利用できるようにした一連の仕組…

Raspberry Pi Zero WでDockerを使う

前回の記事で,Raspberry Pi 4BでDockerを使いましたが,思ったよりもリソースが余っているので,より省電力にできないか検討しました.Raspberry Pi Zero WにDockerをインストールして使ってみました. 仕様 Raspberry Pi Zero W 802.11 b/g/n wireless LAN…

Raspberry Pi 4BでDockerを使う

Raspberry Pi 4BのCPUは4 core 1.5 GHzであり,サーバー用途としては十分ですが,開発環境としては遅いです.当たり前ですがIntel 4 core 3.2GHz CPUと比較すると処理速度は遅いです*1. 最近はDockerがマルチプラットフォームビルドに対応しているので,x64…

Raspberry Pi 4Bをセットアップする

Raspberry Pi 4B 4GBを購入しました.自宅で24時間稼働するDockerの実行環境として使うためにセットアップした時のことを備忘録としてまとめました. なお,項目ごとに分類したことにより,時系列が前後する記述があります. 仕様 Raspberry Pi 4B 4GB Broad…

極小のWebサーバーをHerokuにデプロイした

Alpine Linuxで動作するNginxを使ってWebサーバーをHerokuにデプロイした時の話です. 要件 全てのリクエストを別のドメインにリダイレクトするだけのWebサーバーは,最も単純なWebサーバーの1つです.これをNginxで作成し,Herokuで公開します. 作り方 Doc…