最近,SSL証明書の自動更新に失敗し続けてて,そろそろ失効してしまいそうだったので直す.
だいぶまえにacme.shを使ってLet's Encryptの証明書を更新する設定した気がするけど,ずっと放置だったのでほとんど記憶にない.
ワイルドカード証明書を作るためにテンポラリなDNSサーバを一瞬だけ立てたり,少し怪しげなことをしてるのが駄目なのかと思ったけど,ログ見たらそれ以前に ACME v2 の auth token を取得できてなかった.
acme.shがGetting domain auth token for each domain
とか言ってそのままタイム・アウトしていたので,とりあえずacme.shをv2.7.9からv2.8.4にアップデートしたら治ってしまった.
リリースノート見るとLet's Encryptが最近CDN変えたのがきっかけっぽいけど,問題なく更新できてたドメインもあったりしてよくわからない.
眠い.
https://github.com/binzume/webvr-skymap 恒星の固有名のデータを追加したりした.とりあえずIAUが管理してる一覧から作ったけど,日本での名前や読み方がよくわからない星も多い.
国立天文台のサイトか理科年表あたりに星の固有名の日本語版があるだろうと思ってたけど,見つけられず.オフィシャルなものはないっぽい?それにしても国立天文台のサイト,そこそこコンテンツは豊富なのだけど,目的の情報に異常に辿り着きにくいし,基本HTMLなので扱いにくい...
Oculus Quest,なんだか左右の目で黒色を表示した時の明るさが違うと思ってたけど,左右のディスプレイは独立してるのか.
小説版を読む前に映画見とこうと思って,今更だけどHELLO WORLD見てきた.
肉を食べた
* Chromeでカスタム要素にClipboardEventが届かない気がしていた
ブラウザのClipboardEvent,対象が編集可能でない場合,フォーカスを持っている要素に送られる仕様のはずなのだけど,Chromeだとイベントが来ないので挙動を確認した.
改めて試してみると,Selectionを持っていてかつvisibleな要素にイベントが送られているような気がする.大抵はそれで良いのだけど,inputタグのようなDOM要素を自作するときに困る場合がある.
仕方ないのでdocument.bodyにイベントリスナを登録する.
明け方,風の音で起きたら雨はやんでて晴れていた.
オリオンと冬の大三角.都内にしては星がよく見える.
Pixel3で撮ったのだけど,スマホのカメラもやっと人間の目に追いつきつつあるな.
おうし座方向も撮ってみたけど,ヒアデス星団も写ってるし,スバルの星も6個までは写っていた.
台風
雨と風が強くなってきたので,食べ物を買っておこうと思ったら,スーパー閉はまってるし,コンビニのパンやお弁当は売り切れていた...
久しぶりに炊飯器でご飯炊いた.
数日前はまだだったのだけど,今日見たらOculus Go用に買ったアプリのうち一部はOculus Questに引き継げるようになってた.Oculus Goのストアのアプリがすべて使えるわけじゃないけど,同じのを二回買わなくて済んだのは嬉しい.
Oculus QuestでBluetoothキーボードを使えるようになったけど,OculusブラウザがCtrlキーを認識しないので,クリップボードとかが使えない.
function () {
for (let el of document.querySelectorAll('input')) {
let cb = document.createElement('button'), pb = document.createElement('button');
cb.innerText = 'C';
pb.innerText = 'P';
el.parentNode.insertBefore(pb, el.nextSibling);
el.parentNode.insertBefore(cb, el.nextSibling);
cb.addEventListener('click', e => {
e.preventDefault();
navigator.clipboard.writeText(el.value);
});
pb.addEventListener('click', async e => {
e.preventDefault();
el.value += await navigator.clipboard.readText();
navigator.permissions.revoke({ name: 'clipboard-read' });
});
}
}()
なのでこんな感じのブックマークレットを登録してたのだけど,Permissions.revoke()
が実装されてなかった.一度ペースト操作をするとそのサイトで次回以降もクリップボードにアクセスできるようになってしまう...
PC版のChromeだと最悪アドレスバーのメニューから許可を取り消せるけど,Oculus Questのブラウザだと無理っぽいような気がする.
なんだか眠い...
気づいたら,VR内で動くアバターのモーションエディタを書いていたのだけど,普通のIKでHumanoidのボーンを設定するのは関節のConstraintいじったくらいでは不自然なポーズしか生成されなくて,結局ボーン単位の微調整が必須で不便すぎた.
真っ当な方法あるだろうと思って調べたら,こんなのもあるのか.
https://blog.deepmotion.com/2018/04/30/how-to-make-3-point-tracked-full-body-avatars-in-vr/
jsから扱いやすいアニメーションのフォーマットで標準的なやつが見当たらないな.BVH使ってみたけどモーションキャプチャ用フォーマットっぽすぎて微妙.今の所,THREE.jsのTHREE.AnimationClipのjsonフォーマットが一番扱いやすそう...