2020-05-05 にっき

OBSとv4l2のデバイスに出力するための設定をした、とりあえずここ見ながら進める

www.nofuture.tv

# pacman -S obs-studio
% yay -S obs-v4l2sink

v4l2のデバイス作って

# modprobe v4l2loopback video_nr=10 card_label="OBS Cam"

OBSのツールからv4l2sinkを選び /dev/video10 へ出力する設定を行う、とりあえずzoomに出すことは出来た

設定画面でx264のソフトウェアエンコードになっている部分で、出力をGPUレンダリングしようとするとビデオドライバが最新のものか確認するよう言われる。 amdgpuのドライバ入れてなかったかもなと思っていれる、ここを参考にする。

wiki.archlinux.jp

あれこれ、こないだやったときドライバ入ってなかたのでは...いれる

# pacman -S xf86-video-amdgpu libva-mesa-driver

これでハードウェアエンコードはうまくいったよう

あとはC920のウェブカムの入力をH.264かMJPEGにしたい

l4v2ctl --list-formats-ext するとこうでる

ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x90
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x120
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 176x144
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 432x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x448
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x600
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 864x480
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 960x720
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1024x576
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1600x896
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1920x1080
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 2304x1296
            Interval: Discrete 0.500s (2.000 fps)
        Size: Discrete 2304x1536
            Interval: Discrete 0.500s (2.000 fps)
    [1]: 'H264' (H.264, compressed)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x90
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x120
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 176x144
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 432x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x448
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x600
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 864x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 960x720
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1024x576
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1600x896
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1920x1080
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
    [2]: 'MJPG' (Motion-JPEG, compressed)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x90
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 160x120
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 176x144
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 432x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x448
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 800x600
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 864x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 960x720
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1024x576
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1600x896
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
        Size: Discrete 1920x1080
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.042s (24.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)

OBSの設定で入力ソースのとこをYUYVにしてるとFull HDのfpsがかなり限界な感じだったので映像フォーマットをEmulatedって付いてる方に切り替えてみた、すると高fps出る。

We actually use libv4l2 to automatically decode MJPEG and H264, they are listed as "Emulated" formats (confusing, yes). Not sure about the quality, though. https://obsproject.com/mantis/view.php?id=321

初見殺し感あるが動いたのでよし

これでOBSから映像をzoomに出せるようになったのでやりたい放題だ


こないだのavatarifyリベンジでpytorchをしらべていた

qiita.com

% yay -S rocm-opencl-runtime

雑な理解だけど↑入れてrocmの環境を整えてavatarifyの使うPyTorchをこっちに切り替えればよい?

github.com

コンパイルが終わらないので寝

手軽にいけるかとおもったけどだめで、yak shavingが楽しくて道を外れた感じがする

2020-05-04 にっき

結婚6年め突入、もう少ししたら交際12年目になる


今日は家事をたくさんやっていた


レビューが来ていたので更新した、 module_functiondef self?. で書けるのをすっかり忘れていた

github.com


昨日GitHub ActionsのPull Requestだしたときに onpull_request が抜けていたことに気づいて、足した

gongoさんとTwitterでやりとりした


Minecraftをやりはじめた

今日は家の周りを探索して海底神殿があるのと隣の島に豚と羊がいるのを発見した

2020-04-30 にっき

にっきのタイトルをISO8601にしたぞ


これのJSONのところの名前埋めた

docs.google.com

職人の手による温かみのある手書きでございます。

github.com

他清掃活動

github.com


ruby-jpで紹介されていたライブラリ、型がついたよう。すごい。

github.com

ライブラリのメソッドを全部使うわけでもないだろうし使っているところだけ型付けていくのがいいんだろうなあ

私はなんかいきなりドカンと頑張る感じでエターナルことが多いので、こういうアプローチで自分のライブラリに型つけていくの見るといいなあと思う


なんか睡眠タイミングをずるずるおくらせてしまっているせいで日中のパフォーマンスが落ちている気がするので今日からは早くねたい

残っていた小鶴のレモンサワ飲んでる


めっちゃ見たことある絵柄だと思ったら作者の人の他のシリーズのスタンプもっていた


JavaScriptむずかちー

2020/04/29 にっき

子どもに「あれは基地局の鉄塔」と教えこんだら高圧線の鉄塔と基地局の鉄塔を区別して「基地局の鉄塔」と呼ぶようになったが実際に基地局なのかどうか鉄塔まで確認しに行っていなかったので確認してきた。基地局の鉄塔だった。ちょっと高いところにある鉄塔まで急傾斜の道を登ったのですごく疲れてしまって帰宅してからゴロゴロタイムをたっぷりとったら今日が終わりそうになっていた。満たされた一日だった。


朝ごはんにマフィンを作ろうと思いたったが前回作ったとき一つの丸セルクルを直列に稼働して清掃の手間などもあり時間が2倍以上かかったのを思い出しまずは近所のスーパーでもう1つ丸セルクルを購入した。スーパーマーケットの菓子用品は噂通り品切れていた。こないだマフィンにベーコンエッグを挟んだ歳は調味料を掛け忘れて素材の味を楽しんでしまったので今日はしっかりと掛ける調味料を選んだ。妻は魚卵が苦手なので妻の分はマヨネーズ、私は明太マヨネーズ、マヨネーズを料理に使うことはあまりないのでもちろん2つとも賞味期限は切れている、マヨネーズの他にもとかしたチーズを載せたがこれもおいしかった。


昨日ベルトコンベアーの動画を子に見せたらすごくハマっていたので今日も何かしらの機械の動画を見せたくなり今朝は圧搾機の動画を一緒にみていた。手作りで菜種を絞って油を作る工程、面白かった。


子とチャパティを作ったつもりがうまく膨らまないのはなぜなのか、何かしらのコツがいりそうだけどつかめていない。全粒粉に襖がいっぱい入っていたり伸ばす行程で何度も往復しているせいでガスが抜けきってしまっているのだろうか。チャパティを焼いたのはカレーを食すためでメインの具材は冷凍骨抜き無塩サバ、今回野菜に関しては保存がきくものしか入れておらずミツカンの乾燥玉ねぎ、スーパーでうっていた乾燥スライスにんにく、切り干し大根を刻んだものを熱湯で戻して使った、食感は悪くなかった。スパイスと玉ねぎと切り干し大根を米油で炒めたのちパックのカットトマトを入れてその横でサバを焼き両者いい感じになったらマージした。スパイスは負けサバが勝ち部屋はサバの匂いで包まれた。チャパティで挟んだところおいしかった。小麦粉だけで作れるし無発酵だし子も一緒に作れるのでチャパティは便利、また一緒に作りたい。


ヘッドホンが断線したのか聞こえづらくなったので新しいものを買ってみた、近所のスーパーや量販店は軒並み閉店が20時になっていて20時以降に出歩くと寂れつつある都市に住んでいる気持ちになる。ゾンビ映画でゾンビ以前の暮らしをゾンビと一緒にしている人が出ることがあるがあれが出来るのは周りの人がゾンビになっても対して周りが変わらないから、というのがあるんだろう、総じて田舎だよなあと考えていた。リモートで同僚氏が美容パックをしていたので買ってみた。こうやって買うのはいいが毎回使い切る前に冷蔵庫の中に骨を埋めてしまう。習慣化は難しい。


毎日2000文字ぐらい書くのをKPIにブログを頑張るというのはどうか、あまり何も考えずに頭のダンプ入力し続けて10分で1000文字ぐらいで入力できるものとして20分は掛かる計算になる。無理そう。


子がヘッドホンをぬきさしし続ける限りヘッドホンが断線するだろうしどうしようかなあ。こないだも話している途中に抜かれてなにもわからない状態になった。無線のヘッドホン今はWH-CH400を使っているんだけどzoomとかしているときに話がワンテンポずれてしまう気がしている。 しかしそもそもpingがまあまあ高いのでヘッドホンのせいというわけでもないかもしれない。

このヘッドホンはAACしか対応していないので買い替え先のヘッドホンはaptXかaptX LLに対応しているものが選択肢になる。 そもそもLinuxでの対応状況はどうなのかを調べるとArch LinuxであればAURから必要なモジュールが手に入れられるらしい。

ここでaptX LLについて触れられているが今の所対応予定はなさそう

github.com

そもそも専用ハードウェアが必要らしい

WH-CH400は耳周りのパッドがボロボロになってきたからパッドを変えるとまだ使えるけど、といった感じ

新しいのをかったらスマホ用にできるだろうし、家で使う用の何かを検討していきたい


今日はこのあとシャワー浴びてからJSONの型少し書こうと思う

2020/04/27 にっき

dev.toのソースコードを眺めていたけど、あれはやっぱ速度のためにキャッシュしているんだろうなあ

キャッシュせずになんかいい感じにしようとするとpolymorphicのpreloadという話になると思う

polymorphicの先の先ぐらいまでpreloadしようとするとActiveRecord::Associations::Preloader を使ったり

このPRはいったRails 6まであげたり github.com

activerecord-belongs_to_if を使ったり、ということになりそう

r7kamura.com

polymorphic、たぶん好きな人ごく一部で全然ツイートしている人がいない

自分は前どうしてたっけ、前にやった趣味のネタ的なやつではJSONカラムで入れてi18nした文字列をSQLで組み立ててunionしてガッチャンコみたいな謎の技術をしていた

github.com

会社では ar_sync を使っていて、これはなんかpreloadしやすいような気を利かせた仕組みが1つあり、いい


カード会社へ転職の連絡をした

学生時代に作ったカードの利用額が低いので引き上げる依頼をした

なんか送金限度額とかそのあたりも低いのであげておこうかな、何かあったときのために


昨日のruby-signatureでよくわからんかったのわかったかも

return typeのところにunionかいてたからそこ共変だか反変だかじゃないから合わないっておこられてたんだなあ

なんかでもほかも色々問題がある気がする

assert_send_type でネームスペースついたクラス返すと型あわなくなるとか、そういう

明日やろう

いいなと思ったらKyashでお金を下さい
20191128011151
GitHubスポンサーも受け付けています
https://github.com/sponsors/hanachin/