2020-05-04 にっき
結婚6年め突入、もう少ししたら交際12年目になる
今日は家事をたくさんやっていた
レビューが来ていたので更新した、 module_function
は def self?.
で書けるのをすっかり忘れていた
昨日GitHub ActionsのPull Requestだしたときに on
に pull_request
が抜けていたことに気づいて、足した
gongoさんとTwitterでやりとりした
@hanachin_ GitHub Actions 初心者なので確認なのですが、あの PR って TravisCI からの乗り換えのための準備みたいな認識で ok ですか? (乗り換え自体は問題ないと思います! )
— Wataru MIYAGUNI (@gongoZ) May 4, 2020
Minecraftをやりはじめた
今日は家の周りを探索して海底神殿があるのと隣の島に豚と羊がいるのを発見した
2020/05/03 にっき
雑英語でも英語で書いとくと違う言語圏の人に届くのちょっとうれしい
しらべ物をしていた
子にベルトコンベアを作った、とてもよろこんでいる
Pull Requestをいくつか出した(出しすぎたかもしれない...)
github.com github.com github.com github.com github.com github.com
2020-04-30 にっき
にっきのタイトルをISO8601にしたぞ
これのJSONのところの名前埋めた
職人の手による温かみのある手書きでございます。
他清掃活動
ruby-jpで紹介されていたライブラリ、型がついたよう。すごい。
ライブラリのメソッドを全部使うわけでもないだろうし使っているところだけ型付けていくのがいいんだろうなあ
私はなんかいきなりドカンと頑張る感じでエターナルことが多いので、こういうアプローチで自分のライブラリに型つけていくの見るといいなあと思う
なんか睡眠タイミングをずるずるおくらせてしまっているせいで日中のパフォーマンスが落ちている気がするので今日からは早くねたい
残っていた小鶴のレモンサワ飲んでる
めっちゃ見たことある絵柄だと思ったら作者の人の他のシリーズのスタンプもっていた
花粉症です!を伝える、
— ゆう (@itsukiyu_yu) 2020年3月23日
Tシャツ&トートをつくりました!
🧸Tシャツ(S / M / L / XL)🧸https://t.co/QghI4aTS3d
🐰トートバッグ🐰https://t.co/5rsPCifLCV
通販限定のグッズです!
※4月末までの販売となります pic.twitter.com/LXLxamCl11
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について触れられているが今の所対応予定はなさそう
そもそも専用ハードウェアが必要らしい
WH-CH400は耳周りのパッドがボロボロになってきたからパッドを変えるとまだ使えるけど、といった感じ
新しいのをかったらスマホ用にできるだろうし、家で使う用の何かを検討していきたい
今日はこのあとシャワー浴びてからJSONの型少し書こうと思う
2020/04/28 にっき
モニターアームをポチってみた
椅子かうか〜
2020/04/27 にっき
dev.toのソースコードを眺めていたけど、あれはやっぱ速度のためにキャッシュしているんだろうなあ
キャッシュせずになんかいい感じにしようとするとpolymorphicのpreloadという話になると思う
polymorphicの先の先ぐらいまでpreloadしようとするとActiveRecord::Associations::Preloader
を使ったり
このPRはいったRails 6まであげたり github.com
activerecord-belongs_to_if
を使ったり、ということになりそう
polymorphic、たぶん好きな人ごく一部で全然ツイートしている人がいない
自分は前どうしてたっけ、前にやった趣味のネタ的なやつではJSONカラムで入れてi18nした文字列をSQLで組み立ててunionしてガッチャンコみたいな謎の技術をしていた
会社では ar_sync
を使っていて、これはなんかpreloadしやすいような気を利かせた仕組みが1つあり、いい
カード会社へ転職の連絡をした
学生時代に作ったカードの利用額が低いので引き上げる依頼をした
なんか送金限度額とかそのあたりも低いのであげておこうかな、何かあったときのために
昨日のruby-signatureでよくわからんかったのわかったかも
return typeのところにunionかいてたからそこ共変だか反変だかじゃないから合わないっておこられてたんだなあ
なんかでもほかも色々問題がある気がする
assert_send_type
でネームスペースついたクラス返すと型あわなくなるとか、そういう
明日やろう
2020/04/26 にっき
弊社、Snap cameraブームがおきているが当方Linuxなので試せず
ということでこれを試すことにする
これが必要
あとminicondaも必要
いれる
% yay -Ss v4l2loopback aur/v4l2loopback-dkms-git 0.12.4.r0.g9bd5553-1 (+12 1.12%) v4l2-loopback device aur/v4l2loopback-dkms 0.12.5-1 (+38 4.89%) v4l2-loopback device % yay -S v4l2loopback-dkms % yay -Ss miniconda aur/miniconda3 4.8.2-1 (+19 0.09%) Mini version of Anaconda Python distribution. % yay -S miniconda3 % echo "[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh" >> ~/.zshrc
確認する
% dkms status v4l2loopback, 0.12.5, 5.6.7-arch1-1, x86_64: installed % conda --version conda 4.8.2
avatarifyをダウンロード
% ghq get https://github.com/alievk/avatarify.git % cd ~/src/github.com/alievk/avatarify
インストールスクリプトを少し読む
% cat scripts/install.sh #!/usr/bin/env bash source scripts/settings.sh # v4l2loopback rm -rf v4l2loopback 2> /dev/null git clone https://github.com/alievk/v4l2loopback.git echo "--- Installing v4l2loopback (sudo privelege required)" cd v4l2loopback make && sudo make install sudo depmod -a cd .. source $(conda info --base)/etc/profile.d/conda.sh conda create -y -n $CONDA_ENV_NAME python=3.7 conda activate $CONDA_ENV_NAME conda install -y pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch # FOMM rm -rf fomm 2> /dev/null git clone https://github.com/alievk/first-order-model.git fomm pip install -r requirements.txt
% cat scripts/settings.sh # Web-camera device id # Call `v4l2-ctl --list-devices` and find your web-camera device, e.g. /dev/videoX, where X is camera id CAMID=0 # ################################################ # Normally you don't want to change settings below # [Linux] Virtual camera device # Make sure this id is greater than maximum device id in the list `v4l2-ctl --list-devices` # Don't set a big number, it's known that Zoom does not detect cameras with id like 99 CAMID_VIRT=9 # Conda environment name CONDA_ENV_NAME=avatarify
確認してみよう
% v4l2-ctl --list-devices HD Pro Webcam C920 (usb-0000:02:00.0-4): /dev/video0 /dev/video1
これvideo0とvideo1あるのはHDかどうじゃないかみたいな違いかしら、とりあえず CAMID
は問題なさそうだし CAMID_VIRT
も9でもんだいなさげ
v4l2loopback
まわりの部分はざっくりコメントアウトしてしまおう
diff --git a/scripts/install.sh b/scripts/install.sh index 4117693..6ba196f 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -3,13 +3,13 @@ source scripts/settings.sh # v4l2loopback -rm -rf v4l2loopback 2> /dev/null -git clone https://github.com/alievk/v4l2loopback.git -echo "--- Installing v4l2loopback (sudo privelege required)" -cd v4l2loopback -make && sudo make install -sudo depmod -a -cd .. +# rm -rf v4l2loopback 2> /dev/null +# git clone https://github.com/alievk/v4l2loopback.git +# echo "--- Installing v4l2loopback (sudo privelege required)" +# cd v4l2loopback +# make && sudo make install +# sudo depmod -a +# cd .. source $(conda info --base)/etc/profile.d/conda.sh conda create -y -n $CONDA_ENV_NAME python=3.7
で bash scripts/install.sh
する
待っている間にちゃんとREADME読んだけどCUDAじゃないと、Geforceじゃないとだめそうじゃん。ぴえん。
まあ気にせずすすめる。 インストールはうまくいったのでDropboxからダウンロード。 md5sumを確認
% md5sum ~/Downloads/vox-adv-cpk.pth.tar 46b26eabacbcf1533ac66dc5cf234c5e /home/sei/Downloads/vox-adv-cpk.pth.tar
大丈夫そうなので移動
% mv ~/Downloads/vox-adv-cpk.pth.tar ~/src/github.com/alievk/avatarify
実行する前にソースを読む
% cat run.sh #!/usr/bin/env bash #set -x source scripts/settings.sh bash scripts/create_virtual_camera.sh source $(conda info --base)/etc/profile.d/conda.sh conda activate $CONDA_ENV_NAME CONFIG=fomm/config/vox-adv-256.yaml CKPT=vox-adv-cpk.pth.tar export PYTHONPATH=$PYTHONPATH:$(pwd)/fomm python cam_fomm.py --config $CONFIG --checkpoint $CKPT --cam $CAMID --virt-cam $CAMID_VIRT --relative --adapt_scale $@%
% cat scripts/create_virtual_camera.sh #!/usr/bin/env bash source scripts/settings.sh FILE=/dev/video$CAMID_VIRT if [[ ! -w "$FILE" ]]; then echo "Creating virtual camera $FILE (sudo privelege required)" sudo modprobe v4l2loopback exclusive_caps=1 video_nr=$CAMID_VIRT card_label="avatarify" #sudo v4l2-ctl -d /dev/video$CAMID_VIRT -c timeout=1000 fi
これで一応動かしてみる、動いたがFPSが低い
% bash run.sh
転がってるEdge TPUのことを思い出しとりあえずライブラリをいれるがavatarifyはPyTorchなのでだめやん
% yay -Ss edgetpu aur/libedgetpu-max 13.0-1 (+1 0.09%) Google Coral Edge TPU library and headers (max speed). aur/libedgetpu-std 13.0-1 (+1 0.09%) Google Coral Edge TPU library and headers (standard speed). aur/edgetpu_api 2.11.1-1 (+1 0.00%) (Orphaned) Google Coral Edge TPU runtime and Python library % yay -S libedgetpu-max
おわり
JSONのoptionの型まじめにつけるのをあきらめて Hash[Symbol, bool]
にして誰かに頑張ってもらいたい
JSONに限らずoptsは魔境....
一応あとから頑張れるよう
type json_options = Hash[Symbol, untyped]
しておいて json_options
を使うようにした
あとかいていて
type encoding = Encoding | string
でもう1 Pull Request出せることに気がついた
なんか他、いろいろ詰まってだめ。おやすみ。