20-Oct-2024
[えー…?]

21-Sep-2024に続き、本日もJMHの受信。非常にクリアだった前回と比べ、

tjmh-202410200229.jpg

読めません。いつも通り13988.5kHzでの受信なのですけど。56.7kg(22:35)

20-Oct-2024
[わからん]

xlxd以外のDMRリフレクタを試してみようと思って、HBLink3(dashboardはhbmonitor3(KC1AWV版))を見ています。動作に必要なbitarray, dmr_utils3のports化は済ませたといえ、動作に必要なhblink.cfg, rules.pyの記述がよく分からないんですよね。

どこのポートでどんな感じのインタフェース(と解釈している)を提供するかをhblink.cfgに記述し、インタフェース間でどのように転送するかのルールを記述するのがrules.pyなのはなんとなく分かるのですが…ちょろっと動かすための最低限の設定はどう書いたものかなって。

DMR Master Server(Chris Hood)の動画を見て、

という雑な理解をしています。

他リフレクタとの接続は行わず、スタンドアロン動作とする場合はMODE:MASTERとなるインタフェースが一つあれば良さそうに見えます。だとすると、bridge.pyはどう書くのが適切か…エントリが空(BRIDGES = {})の状態でも起動するようですがこれで問題はないのか、それともMasterについて何か記さないと実はダメなのかについては分かりません。仮に何らかのPeerが必須になるとしたら、既にXLX765が動いていますのでこれを相手にするよう記述してみることにします…ということで。

いつまで続くかは未定ですが、hblink.cfgrules.pyをざっくり書いて、hbmonitor3も動かして様子を見ることにしましょう。57.0kg(11:35)

18-Oct-2024
[最終結果]

08-Sep-2024に受験した登録販売者、合格していたのはともかく公式発表の解答で採点し直したところ115点ではなく114点でした。何を間違えたのか、反省会をしてみます。

・医薬品に共通する特性と基本的な知識 (20/20)

ここは20問全てを取っていたので、書くことはありません。

・人体の働きと医薬品 (19/20)

問24:循環器系に関する記述の正誤を問う問題で「c 好中球は、白血球の約1/3を占め、細菌、ウイルス等の異物を認識したり、それらに対する抗体を産生する。」を正しいものと判断してしまっていました。好中球、白血球の1/3よりは多く存在しています(37〜72%)。

・薬事に関する法規と制度 (19/20)

問54:医薬品医療機器等法に基づき、店舗販売業者が当該店舗の見やすい位置に掲示板で掲示しなければならない事項について。「c 医薬品による健康被害の救済制度に関する解説」については外さなかったものの、「b 当該店舗内の情報提供及び指導を行う場所」と組み合わせてしまいました。正しくは「a 個人情報の適正な取扱いを確保するための措置」です。

・主な医薬品とその作用 (38/40)

問68:小児の疳を適応症とする生薬製剤・漢方処方製剤(小児鎮静薬)及びその配合成分に関する記述の正誤、「ジンコウは、鎮静、健胃、強壮などの作用を期待して用いられる。」は正しいにもかかわらず誤りであると判断し(ジャコウと勘違いした)、落としました。

問78:強心薬に配合される生薬成分に関する記述の正誤、「a センソは、有効域が比較的狭い成分であり、1日用量中センソ5mgを超えて含有する医薬品は劇薬に指定されており、一般用医薬品では1日用量が5mg以下となるよう用法・用量が定められている。」…当初は正しいと思っていましたが、センソ5mg以上は劇薬では毒薬ではなかったか?と見直し時に謎の勘ぐりをしてしまい、落としました。

・医薬品の適正使用と安全対策 (18/20)

問109:一般用医薬品の制酸薬に含まれる成分(水酸化マグネシウム・合成ヒドロサルタイト・沈降炭酸カルシウム・アルジオキサ・ピレンゼピン塩酸塩水和物・炭酸水素ナトリウム・チンピ末)を見て、添付文書の「相談すること」の項目中に「次の診断を受けた人」として記載されている基礎疾患を答える問題。なんとなく腎臓病と答えていたものの、ナトリウムなら高血圧か?と見直し時に修正し、不正解になりました。

問114:企業からの副作用等の報告制度に関する記述の正誤を問う問題。「d 医療用医薬品で使用されていた有効成分を一般用医薬品で初めて配合したものについては、承認条件として承認後の一定期間(概ね3年)、品質及び有効性に関する調査及び調査結果の報告が求められている。」、自分と非公式の解答ではこれは正しいものとなっていましたが、「安全性に関する調査および調査結果の報告」であるために不正解です。品質及び有効性は、医療用医薬品において既に示されていますからね。

という訳で、不合格が絶対に許されない立場である以上不合格にならずに済んだのは良いものの…詰めが甘いよねこの人と思われるような結果を残したのも確かです。これからどう生きていけばいいのかな?56.2kg(24:40)

13-Oct-2024
[折角PulseAudioを触ったので]

リモートスピーカーなるものをやってみようかと。PulseAudioで簡易リモート再生に書いてあることを自分でもやってみた、というだけの話なんですけど。

サーバ側(音が出る方)
~/.config/pulse/cookieによるアクセス制御はせず、/etc/pulse/default.paにload-module module-native-protocol-tcp auth-anonymous=trueを記述して、pulseaudioを実行(デーモン化はお好みで)
クライアント側
PULSE_SERVER=<PulseAudioサーバのIPアドレス> paplay --raw /dev/urandom

sndioについては15-Oct-2022にさらっと書いていますが、まとめ直すと…

サーバ側(音が出る方)
/etc/rc.conf.localにsndiod_flags="-L <待ち受け用のIPアドレス> -f rsnd/0" ※-fオプションでsndioの管理下に置くデバイスについては各自の環境に合わせて記述してください
クライアント側
aucat -f snd@<sndioサーバのIPアドレス>/0 -i /dev/urandom

sndioのアクセス制御とはちょっと違うなーとか、snd@<IP address>/0の/0の部分でサーバ側の出力デバイス変えられるのかなー(未確認)とか、PulseAudioと比較してみると色々違うものなんですね。どちらを使うにせよ、リモートスピーカーはそんなに難しくないということは言えそうです。

そういえば、OpenBSDのPulseAudio→sndioモジュール、入出力先のsndioデバイスはどう指定するのか気になっていたんですがOpenBSDGuy/pulseaudio-module-sndioに方法が書いてありますね。/etc/default.paに、load-module module-sndio device="snd/0"みたいな形で指定すれば良さそうです(他にも色々な引数があります)。56.6kg(17:05)

12-Oct-2024
[どうにか(3)]

yamvoiceにsndio対応がとりあえず入ったので、PulseAudio対応も実験的に入れてみました。WSL2だとPulseAudio越しなら音が鳴るらしいというのがその理由。とはいえ、WSL2のALSAはデフォルトの入出力先がPulseAudioなので、PulseAudio対応は不要だった(原典のmvoiceで十分対応できる)というオチ。そういえばOpenBSD向けのalsa-libもPulseAudio plugin使ってPulseAudioに回してましたね…

まあWindowsで使わなかったとしてもPulseAudioはIllumos(Solaris), OSXにも対応しているらしいのでそっち方面で役に立てば良いんじゃないんですかね。PulseAudioの素のAPIがやたらと複雑怪奇なのに対し(defaultデバイスのみの対応としたのはデバイス名一覧の取得がこんなコードになるという理由による)、Simple APIだと雑に書いても音が鳴ることが分かっただけでも十分な収穫だし。

yamvoiceはここまでにして、次にやるべきことをやりましょう…56.0kg(22:40)

05-Oct-2024
[どうにか(2)]

mvoiceのPRに投げた修正点を、立ち上げたフォークであるyamvoiceに放り込んでREADME.mdを書き直すところまではどうにか。

あとはALSA依存部分を切り離してsndio対応部分を書くことになるのだけど、この切り離しがちょっと面倒そう。C++で書かれているので、API非依存部分を基底クラスにしてAPI毎の派生クラスを作るのが定石とはいえ、基底クラスに「std::async(派生先のオブジェクト)」というコードを書くのはどうもダメらしい(派生クラスに「std::async(派生クラス内のオブジェクト)」を書いて、これを基底クラスから呼ぶのもダメだった)。

いくらなんでもできないことはないはずだし、自分の書き方間違ってるよね…?と思っているのですが、悩んでいる時間も勿体ないので今回は安直に分解することにしました。別に複数のAPIに同時に対応して、アプリケーション側の設定で動的に切り替える必要もないですし。

という訳で、ゆるゆるやってます。57.2kg(23:30)