2022-04 << 2022-05 >> 2022-06

2022-05-22 (日)

とても眠い.

まだ5月になったばかりな気がしていたのだけどもう5月下旬...

3Dプリンタ用のPLAフィラメント,しばらくPxmalionのやつ使ってたのだけど,残り少なくなるとリールに巻かれてる半径が小さくなるからか,折れやすいな...折れやすい以外は使いやすいのだけど.

2022-05-21 (土)

https://github.com/binzume/webrtc-rdp

それなりに使えてるけど,複数のPC操作しているとクリップボードの共有機能が無いと不便だな..

Oculus Questもそうなのだけど,Android Chromeで Ctrl+Space を入力すると,keydown(Control),keyup(Control),keyup(Space),keyup(Control)の順でイベントが発生する.Spaceのkeydownが存在しないし,Controlのkeyupがなぜか二回発生していて何かおかしい.

あと,Windows(Command)キーとPrintScreenキーはAndroidのシステムで特別扱いされてるみたいでKeyboardEventが発生しない.

2022-05-20 (金)

特に何もしてないのに疲れてるな...

2022-05-19 (木)

npmで相対パス指定のdependencyを含むパッケージをインストールするとnpm内で TypeError: Cannot set properties of null (setting 'peer') と言われてどうしようもなくなることがある.node_modulesの下にリンクが生成されると上手く扱えてなさそう.

https://github.com/npm/cli/issues/3847

これと同じ原因っぽい.昔のバージョンでは動いてたみたいだけど1年近く直ってないしダメそう..

2022-05-17 (火)

https://github.com/binzume/webrtc-rdp

RTCDataChannel上でファイルを共有できるようにしておく.だいぶ昔に書いたWebSocket経由でファイルシステム扱うやつがあったので少しいじっただけ.ChromeのRTCDataChannelはArrayBufferは使えるけどまだBlobは未サーポートだった…….

ElectronのIPCチャネルは,シリアライズ可能なものしか通さないのでファイルをメモリに読まずにFileやBlobをレンダラプロセスに渡したいときに困る.いくつか関連するissueがあったので眺めた感じだとあまりやる気は無さそう.逆方向の,レンダラプロセスからメインプロセスにFileを渡すためにFileオブジェクト自体にpathを取得する口を作ってあるのか……実際のパスが見えてしまうのは少し気持ち悪い.あと,FileSystemHandleにはpathが無いので,ファイルを含まないディレクトリがドロップされたときはpathを取得する手段が無さそう?

Electron自体に手を入れてしまうと後で面倒そうだし,とりあえずWindows上で良ければWM_DROPFILESメッセージ送ったら,JavaScript側でdropイベント発生するんじゃないかと思ったけどダメだった.ChromiumはOLE Drag and Dropしか受け付けないっぽい.

2022-05-16 (月)

少し前に,ckw から Windows Terminal に移行したのだけど,少し挙動が怪しい.基本的には良い感じなのだけど.

色々な場面で一瞬だけ待たされるのと,待っている間に操作すると謎の状態になりがちな気がする.

一番気になるのは,ファイルやディレクトリをドラッグしてパスを貼り付けた瞬間に何かするとパスが貼り付けられなかったりクラッシュしたりする.よく cd まで入力してエクスプローラからディレクトリをドロップした直後にEnterを入力するので手が勝手に動くのだけど,ちょうどダメなタイミングでEnterキーを押しているっぽい.0.1秒くらい待てば大丈夫.あとはクリップボードを経由するようにするか….

複数タブ開けるけど,管理者権限のタブは混ぜられないっぽいので,wsl上のdocker操作したりするとき別ウインドウが表示されて少しだけ鬱陶しい.

2022-05-15 (日)

https://github.com/binzume/karakurijs

RobotJSに足りないものを色々追加したり置き換えたりしてたものをnpmパッケージに切り出した.Linuxでも使えるようにRobotJSのwrapperとしても動作するようにしたけど,いらなかったかも.

2022-05-14 (土)

やること溜まってる気がするけど,現実逃避して色々書く日.

2022-05-13 (金)

Node.jsでプラットフォームごとのモジュールを作りたいときは,パッケージ分けてpackage.json の os や cpu を書いた上で,optionalDependencies に追加するのが定石っぽい?

optionalDependenciesだと他の理由で失敗しても素通りしてしまったり,推移的依存関係にあるモジュールが不要なものまでインストールされてnpm listしたときにextraneousになってしまうのが気持ち悪いな.

2022-05-12 (木)

node-gyp,conditionsでプラットフォームごとにビルドできるけど,targetsが空になるような設定だとビルドに失敗したりするので悩ましい.0個なら何もしないで欲しいのだけど...

{
  'conditions': [
    ['OS=="mac"', {
      "targets": [
        {
            "target_name": "automation",
            "sources": ["src/automation.mm"]
        }
      ]
    }],
    ['OS=="win"', {
      "targets": []
    }]
  ]
}

空のVisualStudioのソリューションが出力されるとビルドに失敗するっぽい.

2022-05-09 (月)

連休が終わってしまった...

とても眠い.

2022-05-08 (日)

東京に戻る.

PXL_20220508_040610972.jpg

2022-05-07 (土)

海.

PXL_20220506_222537869.jpg

肉を焼いた.

夜は風が強かった.

2022-05-06 (金)

新潟でキャンプ.

PXL_20220506_071219707.jpg

カニを食べた.

2022-05-05 (木)

WebRTC Remote Desktop

WebXR版のクライアントで,デスクトップのウインドウをドラッグして分離して取り出せるようにしておく.ウインドウ名の一覧から選ぶ手間が無くなって少し快適になった.

2022-05-04 (水)

とても眠い.

2022-05-03 (火)

昨日は電車空いてたけど,今日は人多い.

特急北斗,グリーン車はコンセントあるのでPC使えるけど少し揺れるしあまり作業に集中できないな...

登別.

PXL_20220503_032032283.jpg

2022-05-02 (月)

最近引きこもっていたので出かける.何も予定は立ててないけど,とりあえず北へ.

PXL_20220502_054837796.jpg

洞爺湖.

予定は新幹線の中で考えれば良いかと思ってたけど,いつのまにか着いていた.新幹線の中は他にすることが無いので作業がはかどる.寝る場所無いと困るので宿の予約だけした.ゴールデンウイークだけどそんなに混んでない?

Electronの desktopCapturer.getSources() で返ってくるソースにキャプチャできないウインドウが含まれるので調べると,ウインドウハンドルおかしいな...どこで壊れてるのか調べるの面倒.JavaScriptで実装できてDevToolsも使えてデバッグ簡単に見えて,面倒な問題の多くはElectron内部やネイティブモジュール周りなので結局面倒くさい.(それだけChromiumが良くできているということなのだけど)

とりあえずdesktopCapturerとか無視してウインドウハンドルから自分でストリームIDを生成するとキャプチャできる.そもそもrendererプロセスからなんのパーミッションも無しにウインドウをキャプチャできてしまうの便利だけどそのうち塞がれてしまうかも.

Electronの最近のリリースノート見てると,セキュアにしようと頑張ってる感じがあるけど,何でも自由にできたところに,後付のセキュリティ機構入れるの大変そうだし,今のところ面倒の割に危なそうな挙動も多くてコスパ悪そうに見える…….できれば,asar内のリソースを特殊なoriginとして扱えて,origin単位のパーミッションがあると便利なのだけど.

PXL_20220502_114627325.jpg

夜,花火が上がっていた.

2022-05-01 (日)

出かけようと思ってたけど天気悪い.色々雑用を片付けたり掃除したり.

2022-04 << 2022-05 >> 2022-06