みーのぺーじ

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

素数判定ゲームを公開しました.

任意の数が素数かどうかを頭の中で判定できるようになりたいと思ったので,出題される数字が素数かどうかを判定するゲームを作成して練習することにしました.せっかくなので公開しました. https://isprime.atsuhiro-me.net/ 2から指定した値までの数から,…

SendGridのSigned Event Webhookを使う

SendGridの送信履歴は数週間しか残らないので,履歴を保存するために,Webhookを利用して自分のサーバーに記録する仕組みを用意しなければなりません. Google Cloud Functionsを利用して,かんたんにPythonで実装してみました.とりあえずverifyできるかを…

パソコンが時々フリーズする

メインで使用しているUbuntu デスクトップPCが,最近しばしばフリーズするようになりました. よく見てみると,メモリーが不足しているようです. メモリーが8GBでは不足するようなので,16GBに増やしてみました. フリーズしなくなりました.

Ubuntuでネットワークカードを使う

みーのデスクトップPCに,WiFiとBluetoothがないので,ネットワークカードで対応させることにしました. EDUP 1300 Mbps 無線LANカード ヒートシンク付き デュアルバンド2.4G / 5G Bluetooth4.2 PCI-Eワイヤレスアダプターインターネットネットワークカード…

Windows10 デジタル ライセンスをUbuntuの仮想環境で活かす

Windows 10 Proのデジタル ライセンスが付与されたパソコンを購入したのですが,みーは開発でUbuntu Desktopを使用するので,Virtual Boxを利用して仮想環境にWindows 10をインストールし,OEMライセンスを使用して有効活用することにしました. Ubuntu 21.1…

Ubuntu の設定と使い方メモ

Ubuntu 21.10 を好みに合わせて設定する方法をまとめます. 日本語のインストール 英語版のUbuntuにUS配列のキーボードを接続した環境で日本語入力ができるように設定します.Google Japanese Inputから派生したMozcを使用します. sudo apt install ibus-mo…

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…