はじめに
これまでNode.jsで行番号や関数名を取得する際は、わざと例外を発生させてスタックトレースから値を拾ってくる方法がよく使われていました。
Node.js v22.9.0からは getCallSite()
というAPIが使えるようになったので、今後はこっちを使う方が良さそうです。
Captured Surface Control APIを利用すると、共有中の画面に対するスクロールやズームの操作をJavaScriptで行うことができます。
この機能の何が嬉しいのかと言うと、オンラインでプレゼンをしているときに発表者以外の参加者がスライド送りを担当したり、miroを使ったミーティング中に参加者全員が共有中の画面をズームをしたりできるようになります。
今回は、Captured Surface Control APIとWebRTCのDataChannelを組み合わせて、画面共有中にリモートからスクロールの操作をできるサンプルを作ってみたので、つまづいたポイントなどをブログに残しておこうと思います。
毎回どれがどれだっけとなるので備忘録としてメモしておきます。
JSONの処理において、オブジェクトをJSON文字列に変換する処理の方が「シリアライズ(Serialize)」です。
オブジェクトは一般的にはkeyとvalueのペアが含まれており、構造化・階層化がなされています。
これを文字列という、メモリ上で直列に保持される単一の値に変換するため、直列化(シリアライズ)という単語によって表現されているようです。
一方のJSONの文字列をオブジェクトに変換する方は「デシリアライズ(Deserialize)」です。
これはシリアライズの逆で、JSON文字列をオブジェクトに変換します。
私は、趣味でよく昔の地図や航空写真を眺めているのですが、今昔マップ on the webで一関高専の周辺を眺めていたところ、大正2年の地図に温泉の記号が書かれていることに気づきました。
このエリアに温泉があったという話は聞いたことがなかったので、詳細について調べてみることにしました。
DBのレコードを取得する際、基本的には全件を取得するが、オプショナルな引数が指定されている場合はその値を条件として検索したい。というケースがあるかと思います。
ORMとしてDrizzle ORMを使っている場合にそのような処理を書く良い感じの方法が公式のドキュメントからは見つけられなかったので、調べて見つけたやり方をメモしておこうと思います。
Dependabotの設定をしているにもかかわらず、セキュリティアップデートのPull Requestを作ってくれなかった時の原因と解決方法です。