閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

TEHO+の残高が100万超えてた

TEHO+に月1万の積立を初めて5年ちょい?経ちましたが、100万円になっていました。

始めたばかりの頃はありゃりゃって感じでしたが、2021年頃から盛り返してプラスになっていますね。しかし、当時は何やっても勝てるだろうみたいな相場だったし……。いやまあ自分が個別株とかに手を出すと即下がりだすので、私よりは優秀なのだろうとは思います。人力のアクティブファンドよりはマシなのかなぁ。

んでも趣味としてはいいけど、手数料の差も大きいし税金もあるので、何も考えずにNISAでオルカン買う方が良いでしょうね。ということで、オススメ!みたいな話ではないのですが、せっかくなので記録してみる。

Google Keepの音声メモをAndroidホーム画面に追加した

外を歩いているときに何かを思い付いても、帰宅時点でほぼ確実に忘れているのでスマホにメモしたいんですが、フリック入力遅いし面倒(「腰リール」って、今もやっている人いるのでしょうか?)。

ということで表題の通り、ホーム画面に音声入力のショートカットを作ってみた。まあ、結局スマホを取り出して操作しなければならないのですが、一言でも手入力よりは速い、かも。

できれば眼鏡やイヤホンについているマイクから簡単に入力できるといいんですけどねぇ。眼鏡型デバイスはともかく、イヤホンはもうマイク付いているしGoogleアシスタントが使えるものもあるので、あとはこれをウェイクワードや手を使わずにできれば…。

ちなみにショートカットはGoogle Keepのアプリアイコン長押しからのメニューから追加できます。

油断すると痩せてしまう

年も取ってきたし徐々に痩せにくくなるんじゃないか、と思っているのですけど食事をサボるとダメですね。

暑いし食べるの面倒だなと思っていたら血圧が上がりだして一気に1kg落ちてしまい、まだ落とせそう、みたいになっています。

雑に近年の摂取カロリーをプロットしてみたけれど、一日1600kcal程度じゃ足りないみたいですね。ろくに運動もしていないし、さすがに2300kcalはいらないと思いますが、1800kcalくらいは取らないとダメそう。

…2020年頃も同じようなことを言っていて、羊羹とか一品足して頑張っていた時期もあったのですが、すぐ飽きていたみたいですね。

体重も重ねてみると短期間でも気合い入れて食べるとすぐ上がりそうな雰囲気ではあるけど、上がりすぎてもあれなのでしばらくは現状維持を目指しますか。

モニターライトを買ってみた

BenQのモニターライトをネットで見かけて、よさそうと思ってヨドバシカメラに行ったら置いてなかったので、プリンストンのものを買ってみました。5000円くらい、BenQのは19000円なので値段が全然違う。リモコンの有無とか違いがあるらしい。

www.benq.com

www.princeton.co.jp

Wiiのセンサーバーみたいに(これももう通じない時代かもしれない)ディスプレイの上にくっつけるライト。足がないので机のスペースを取らないのがメリット。これはUSB給電なのでディスプレイのUSBポートに繋げば動きます。ADアダプタ付きの方が明るいとかあるみたいですが、自分が使う分にはこれで十分そう。光量も調整できるけど少し低めにしているし。部屋が暗くてキーボードの数字キーが読めない、みたいな時に手元を照らしてくれるのでべんり(部屋の照明を付けろ)。

リモコンはないけどちょっと手を伸ばせば届くし、いちいちライト付けたり消したりするのに立ち上がらなくていいのは良いですね。どんどん横着になっていく…。

左右がどっちか分からない

いや、分かるっちゃ分かるので左右盲、ってわけではないと思うけど、結構迷う。とっさに「この画像の右上にある…」などと口にすると大体逆だったり。

他にも円高と円安、ミクロとマクロ、LatitudeとLongitude辺りはどっちがどっちだっけ?と悩む。

rowとcolumnは平気なので大体は慣れなんだろうと思うけど、左右だけはなぜ慣れないのか……。あとインフレとデフレもさすがに大丈夫。たぶん。

無題

anond.hatelabo.jp

ニンテンドースイッチのゲーム50本遊んで感想書いたのでまとめ(23〜47) 探偵..

こちら、すばらしいまとめですね。アドベンチャーゲームがたくさん紹介されています。自分もプレイ済みのゲームが一部含まれていて、それゆえ「好みが合いそう!」とピンときたので参考にして色々やってみたいな、と思いました。レインコードはやらなきゃなーと思っていましたし。

ただ最近はゲーム機起動するにもエネルギーが必要で、どこまでやれるかは分かりませんが…。うーん、ADVも中高生の頃はやりまくっていたんだけどなあ。

OpenCV(C++)のcv::Matから一部を切り抜いて(ROI)フィルタをかける際に、元画像の画素値も参照される

PythonC++で、同じような実装をしたつもりが結果が異なるので少しハマりました。

# Python
import cv2
import numpy as np

mat = np.zeros((100, 100), np.uint8) + 100
cv2.rectangle(mat, (20, 20), (80, 80), 128, cv2.FILLED)
roi = mat[20:80, 20:80]
mat[20:80, 20:80] = cv2.blur(roi, (11, 11))
// C++
cv::Mat mat = cv::Mat1b::zeros(100, 100) + 100;
cv::rectangle(mat, cv::Rect(20, 20, 60, 60), cv::Scalar(128), cv::FILLED);
cv::Mat roi = mat(cv::Rect(20, 20, 60, 60));
cv::blur(roi, roi, { 11, 11 });
// この時点のmatが、Pythonと異なる

まあこの例だと一目なんですが、実際はもう少し入り組んでいたので最小化するのに苦労しました。roiにだけ処理したいのですが外側の画素値も見ちゃうんですね。それはそうか、という気もするような、しないような。本能的にコピーを避けようとしてしまうのですが、Pythonと同じ結果にしたければ、コピーすれば良いです。

cv::Mat mat = cv::Mat1b::zeros(100, 100) + 100;
cv::rectangle(mat, cv::Rect(20, 20, 60, 60), cv::Scalar{128}, cv::FILLED);
cv::Mat roi = mat(cv::Rect(20, 20, 60, 60)).clone();
cv::blur(roi, roi, { 11, 11 });
mat(cv::Rect(20, 20, 60, 60)) = roi;

逆にC++の元の実装と同じ挙動をPythonで実現したくなったら、結構面倒そうですね。

ちなみにblurのboderType引数にBORDER_ISOLATEDというものがありますが、これを使っても外側の値は参照されるようです。コメントにはdo not look outside of ROIと書いてあるんですが、これはまた暇なときにソースを読んでみようかな。