2024年 12月 24日

顕微鏡用のスケール2

顕微鏡用のスケールを買ったことがあったけど、追加でもう1つ買ってみた。


5mmに0~100までの目盛がある。0.05mm = 50μm の目盛。なんでどれも読みにくいスケールのふりかたなんだ……

2024年 12月 15日

この日記上の Twitter 関係のボタンを削除した

Bluesky に置き換えた。Bluesky の共有は以下のようにすればいいみたい

https://bsky.app/intent/compose?text=...
2024年 12月 05日

FNIRSI DPS-150 安定化電源のUSBプロトコルを解析してアプリ実装した


FNIRSI DPS-150 直流安定化電源 0~30V 0~5A電圧電流調整 CNC プログラマブルスイッチング電源 4桁 IPSディスプレイ 150W低雑音 高精度 研究実験室用 テスト修理 バッテリー充電 電気のメンテナンス - FNIRSI

FNIRSI

5.0 / 5.0

FNIRSI DPS-150 という実験用の直流安定化電源を買ってみた。USB-PD から電源をひっぱってこれるという最近の流行りというか ALIENTEK DP100 とかの系統の製品

特別悪いところは今のところ感じてない。50mV以下の電圧にはならないぐらい。画面が大きくてみやすい。

FNIRSI というとあやしいオシロスコープを買ったことがあるのでスペック表記はあんまり信用できない。

USBのプロトコル解析とウェブアプリ化

冒頭の動画で説明してるけどUSBプロトコル(シリアルポート)を解析してウェブアプリとして再実装した。JSでプログラマブルに制御を書けるようになった。

ウェブアプリの細かい話1: タイムアウト付きのJS実行

プログラマブルにするにあたって、うっかり無限ループを書いたときのためにスクリプトの実行時間にタイムアウトをつけたいなと思った。

かつてはそんなこと実現できなかったけど、今は Worker#terminate() があるので、Worker 化できる関数なら実現できるみたいだった。functionWithTimeout() みたいな関数を作ってみたけど動いてる。

https://gist.github.com/cho45/cda6bb74d3d82790663762da43298538

ウェブアプリの細かい話1: シリアルポート通信のWorker化

ブラウザのコンテキストだと、タブが非アクティブになったときなどに、 setTimeout() の時間がとんでもないことになるとか、いろいろ制限がある。

面倒くさくても定期的に処理を行いたい通信プロセスは Worker に逃がすほうが良い。Comlink を使っている。


ref

2024年 12月 04日

RF28mm F2.8 STMを買った




RFレンズをはじめて買ってみた。RF28mm F2.8 STM は安い割に画質はそこまで悪くない感じ。最短撮影距離が 23cm であまり寄れないのが難点。

手元動画みたいなのを撮るときに画質的に使えるレンズがSIGMA 35mm F1.4しかなく、これだとデカい上に画角が狭くて使いにくいというのを解消したかった。

本当はもう少し広角が良いけど、今のところちょうどいい価格のレンズがない。

RFマウントにしてからもずっとEFのマウントアダプタ経由でEFのレンズしか使ってなかった。けど、徐々にRFレンズにしたい気持ちはある。ただやたら高額なので気持ちだけで終わりそう。

RFレンズはサードパーティーに仕様が共有されてるらしいけど、現状ではフルサイズ用のレンズはでておらず、今後出るのか謎。だいぶEマウントに押されてしまってRFの存在感は薄い。

RFレンズのレンズマウントキャップ

ずっとEFだけだったので気付かなかったが、RFレンズのマウント側のキャップは位置が1箇所でしかあわないので、閉めにくい。EFレンズは3箇所ハマるポイントがあるので適当にまわしてもつけられるけど、RFだとそうはいかない。地味にめんどう。

紅葉の写真が綺麗に見えないのはディスプレイ解像度のせいです

桜もそうだけどディスプレイ解像度が足りないとほんとに綺麗にみえない。





特別展「はにわ」

平日に行ったにも関わらず、かなり人が多かった。挂甲の武人5体のうち55番(中央)が国宝

人多い。3体しか写ってないけど左右に1体ずついた。展示方法がかっこいい




後ろの壁にプリントがあるの、最初は気付かなかったけどかっこいい


後ろの羽みたいなのなんなんだろうな


2024年 10月 07日

macOS の EOS Utility 「カメラとUSB接続できませんでした」

どうあがいても接続できなくて困った。

どうやらなんか Google Chrome が USB デバイスをかたっぱしからオープンする挙動をしているようで、busy 状態になっているようだった。libusb 関係のなにかなのかもしれない。

EOS Utility 3@(null): AppleUSBHostUserClient::openGated: failed to open Canon Digital Camera@01100000: provider is already opened for exclusive access by pid 602, Google Chrome

Console.app で検索かけていたら以上のエラーログが見れたので原因がわかったけど、わかりにくすぎる

ptpcamerad も変な挙動をしていてカメラが繋がらなくなる。強制的に終了しても起動してくるのでやっかい

EOS Utility 3@(null): AppleUSBHostUserClient::openGated: failed to open IOUSBHostInterface@0: provider is already opened for exclusive access by pid 17290, ptpcamerad

止めた。

sudo launchctl unload /System/Library/LaunchAgents/com.apple.ptpcamerad.plist
sudo launchctl disable gui/501/com.apple.ptpcamerad

ref

2024年 10月 02日

transix AFTR のロードバランス

たびたび transix の IPv4 のポート制限(1024)にひっかかって、そのたびにAFTRを切り替えていたけど、ふと思いついてトンネルを2つ貼って、ロードバランスして2048上限になるようにしてみた。

これでまだ上限あたるようだとほんとにお手上げなんだけど、なんかもっといい方法ないんかな~

ip route default gateway tunnel 1 gateway tunnel 2
tunnel select 1
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:100
 ip tunnel mtu 1460
 ip tunnel secure filter in 1020 1030 2000
 ip tunnel secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101
 102 103 104 105 106 107
 ip tunnel tcp mss limit auto
 tunnel enable 1
tunnel select 2
 tunnel encapsulation ipip
 tunnel endpoint address 2404:8e00::feed:101
 ip tunnel mtu 1460
 ip tunnel secure filter in 1020 1030 2000
 ip tunnel secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101
 102 103 104 105 106 107
 ip tunnel tcp mss limit auto
 tunnel enable 2

RTX1200 は「ポートセービングIPマスカレード」とよばれるのはできないらしい。ルーター自体あたらしくして、有効にできたらもうちょっと余裕でるかもだけど、ポートセービングIPマスカレードもTCPにしか適用されないので、どれぐらい効果あるものなのかよくわからない。

紫外線遮蔽率とUPFとSPF、PA

UPF

UPF は衣類に使われる。UPF50 の意味は紫外線の影響を1/50にするという意味

なので紫外線遮蔽率に換算できる (1 - 1/UPF)

UPF 50の場合、(1 - 1/50) = 98%

SPF / PA

SPF は UV-B、PA は UV-A に対する指標ということになっている。

SPFとPAは基本的にはなんと人体実験によって測定されている。
(一応分光による評価するシステムもあるらしい
https://www.jasco.co.jp/jpn/technique/applicationdata/UV/130-UV-0041.html )

SPF値は、その値を示す日焼け止め化粧品を塗って紫外線を浴びた場合に、何も塗らなかった時と同程度に赤い日焼け(サンバーン、紅斑)を起こすまでにかかる時間の倍率を示しています。例えば、SPF25の日焼け止めクリームを塗ると、素肌と同程度の紅斑を起こすには25倍の時間がかかることを意味しています。

一方PA値は、黒い日焼け(サンタン)を対象としており、何も塗らなかった時と同程度のサンタンを起こす時間の倍率の数値がPA≦2ならばPA、PA=4~8ならばPA++と記号で格付けされます。

これらSPF値やPA値の評価方法は、ISO-24442やISO-24444を元に日本化粧品工業連合会で規定されており、1cm2当たりに2mgまたは2µLの試料を被験者の皮膚に塗布して人工太陽灯による照射を行い、塗布した場所としない場所の最小紅化時間を測定します。しかし、この試験は研究開発段階で行うにはコストがかかり、被験者の個人差も現れます。

PA+ : PPD値が2以上4未満
PA++ : PPD値が4以上8未満
PA+++ : PPD値が8以上16未満
PA++++ : PPD値が16以上

PAは一度PPD値という数値から変換されて謎の指標になる。PPDとSPFの数値の意味はUPFと同じように影響を1/nにするということなので、波長ごとの遮蔽率とみることができる(はず)

たとえば

  • SPF50
  • PA+++

なら SPF50 = UV-B を 98%カット、PA+++ = UV-A を 88%~94% カット という換算が一応できる (はず?)

2024年 09月 19日

ネコ演算子 (ねこみみ演算子) とは

ねこみみ演算子で検索するとものすごい古いエントリがヒットしてなおかつ内容がネコ演算子に関係するものではないという問題がある。

今思いだそうとしても、ねこみみ演算子ってなんだっけ?と思ったので記録しとく

ネコ演算子

そもそもねこみみ演算子というのは(たぶん)なくて、ネコ演算子のことだと思う。

Perl6 の ^..^ オペレータのことを Neko Operator と呼んでいたという記録が2005年8月

範囲演算子
末尾を含まない「..^」(Rubyの「...」)、先頭を含まない「^..」、 先頭と末尾を含まない「^..^」。Damianはこれを「Neko operator」と呼んでいた。 2ちゃんかっつーの。

https://matz.rubyist.net/20050803.html#p02

Perl6 は Raku と名前をかえてリリースされたけどネコ演算子は現存している Raku Operators