Node.jsで実行中の処理の行番号や関数名を取得する方法 令和最新版(Node.js v22.9.0以降のgetCallSite)

はじめに これまでNode.jsで行番号や関数名を取得する際は、わざと例外を発生させてスタックトレースから値を拾ってくる方法がよく使われていました。 Node.js v22.9.0からは getCallSite() というAPIが使えるようになったので、今後はこっちを使う方が良さ…

Captured Surface Control APIを使ってWebRTC経由で画面共有の遠隔操作をする

はじめに Captured Surface Control APIを利用すると、共有中の画面に対するスクロールやズームの操作をJavaScriptで行うことができます。 この機能の何が嬉しいのかと言うと、オンラインでプレゼンをしているときに発表者以外の参加者がスライド送りを担当…

JSONのシリアライズ・デシリアライズ(stringify・parse、Marshal・Unmarshal、dumps・loads、to_string・from_str、toJson・fromJson)チートシート

はじめに 毎回どれがどれだっけとなるので備忘録としてメモしておきます。 シリアライズとデシリアライズ JSONの処理において、オブジェクトをJSON文字列に変換する処理の方が「シリアライズ(Serialize)」です。 オブジェクトは一般的にはkeyとvalueのペアが…

一関高専の近くにかつて存在した温泉について調べた

はじめに 私は、趣味でよく昔の地図や航空写真を眺めているのですが、今昔マップ on the webで一関高専の周辺を眺めていたところ、大正2年の地図に温泉の記号が書かれていることに気づきました。 このエリアに温泉があったという話は聞いたことがなかったの…

CloudfalreなどのCDNを利用している場合にCDNを迂回してOriginサーバーにリクエストを送る方法

はじめに CDNサービスを利用している場合、通常は名前解決後のIPアドレスがCDNサービスのものとなってしまうため、OriginサーバーへのリクエストはCDNサービスを経由したものとなります。 動作確認などのためにOriginサーバーに直接リクエストを送りたい場合…

Drizzle ORMでオプショナルな値を元に検索条件を指定する方法

はじめに DBのレコードを取得する際、基本的には全件を取得するが、オプショナルな引数が指定されている場合はその値を条件として検索したい。というケースがあるかと思います。 ORMとしてDrizzle ORMを使っている場合にそのような処理を書く良い感じの方法…

Dependabotがpath_dependencies_not_reachableのエラーでPull Request作成に失敗した時の解決方法

はじめに Dependabotの設定をしているにもかかわらず、セキュリティアップデートのPull Requestを作ってくれなかった時の原因と解決方法です。

プログラミングを始めてだいたい10年が経った

この4月で、プログラミングを始めてだいたい10年が経った。

よく聞いている技術系Podcastまとめ2024年度版

はじめに 私が普段聴いているPodcastを紹介します。

自作のOSSにちょっと凝った名前を付けるようにしている話

はじめに 個人開発でいろいろなツールを作ってOSSとして公開するときに、名前をどんな感じで決めているのかを紹介します。 何かツールを作りたいとなった時は、コードを書き始める前に脳内でざっくり以下の観点について考えるようにしています。 最低限実装…

今年買って良かった物2023

はじめに 2023年分の今年買って良かった物です。 今年は2022年がそのまま続いたような、あまり変化のない一年だったように思います。 とはいえ、去年ほどではないもののいろいろ買ったりはしていたので、買ったものを紹介していこうと思います。 これまでの…

OpenTelemetryを使って初めてその便利さに気づいた話

この記事は「OpenTelemetry Advent Calendar 2023」の20日目の記事です。 はじめに 先日、ローカル環境でではありますがOpenTelemetryを実際にアプリケーションに組み込んで使ってみました。 OpenTelemetry自体は前から知っていたのですが、実際にアプリケー…

「Fediverse IT系アカウントまとめ」というリストを作って、Mastodonで技術系の情報収集をしている話 #FediverseAdventCalendar

この記事は、Fediverse (2) Advent Calendar 2023の18日目の記事です。 はじめに 皆さんこんにちは。 @sublimer です。 あすてろいどんという汎用Mastodonサーバーの運用をしています。 あすてろいどんの特徴は、鯖缶の自宅にあるサーバーで動いている点です…

Mbed TLSを使うようにしたlibdatachannelで、Mbed TLSのデバッグログを出力させる方法

はじめに OBSとaiortcを使ったWHIPサーバーの間で通信をさせていたところ、途中でエラーになってしまう問題が発生しました。 その過程で色々と知見が得られたので、ブログ記事として記録しておこうと思います。最終的に動いたコードはこちらです。github.com

WebRTCを使ったアプリケーション開発時に使えるReactコンポーネントライブラリを作った

はじめに GWの成果物として、Reactのコンポーネントライブラリを作って公開しました。github.com私はWebRTCを使ったWebアプリケーションを時々作るのですが、デバイス選択機能を毎回自作しており、コンポーネントとしてまとめておけば、いつでも手軽に使えて…

MicroK8sを動かしているサーバーのディスク容量枯渇への対処

はじめに 私は自宅サーバーでMicroK8sでKubernetesクラスターを構築して運用しているのですが、先日ディスクの空きが減っているというアラートが出ていました。 不要なデータを削除するようにして復旧させたので、その手順などを書いておこうと思います。

普段の技術系の情報収集のやり方

はじめに 技術のトレンドや世の中の動向を追うためにいろいろな方法で情報収集をしているので、そのやり方を紹介しようと思います。 情報発信について書かれた記事と比較して情報収集について書かれた記事は少ないような気がするので、どうやって情報収集を…

今年買って良かった物2022

はじめに 毎年書いている「今年買って良かった物」の2022年分です。 今年は社会人2年目となり、日々の業務にもまぁまぁ慣れてきたかなぁといった感じでした。 一方の世の中は、昨年以上に色々大変でした。 経済関係はいろいろと動きがありましたが、それなり…

Mastodonの実行基盤をDocker ComposeからKubernetesに移行した話 #FediverseAdventCalendar

はじめに この記事は、Fediverse Advent Calendar 2022の21日目の記事です。Mastodonサーバーの一つである「あすてろいどん」の鯖管のsublimerです。 あすてろいどんは比較的小規模なサーバーで、特にテーマなどは決めていないいわゆる汎用鯖なので、のんび…

自宅KubernetesクラスターでArgoCDと格闘した話

はじめに 数ヶ月前から自宅Kubernetesクラスターの運用をはじめました。 過去に一度自宅Kubernetesに挑戦してはいたのですが、当時はクラスターを組んで満足してしまい、本格的な運用はしていませんでした。 今回は本格的に運用し、順次運用しているアプリケ…

社会人1年目の振り返りなど

はじめに 社会人というのもを初めてだいたい1年が経ったので、どんな感じだったのかを振り返ってみようと思います。 仕事のことを詳細に書くわけには行かないので、業務以外のことをメインに書きます。

1年間で読んだWebサイトをRedashで集計して可視化してみた

はじめに 私は、興味がある分野の技術ブログ等をRSS登録して毎日更新された記事をチェックしているのですが、有用な記事や広く共有したい記事などを埋もれさせてしまうことがあり、もったいないなぁと感じていました。 この課題を解決するため、Webサイトを…

SkyWay Beta用の認証JWT(SkyWay Auth Token)を生成するサーバーをGoogle Apps Scriptで動かす

はじめに 2月21日に、新しいSkyWayのβ版であるSkyWay Betaがリリースされました。 SkyWay Betaでは、JWT形式のトークン、SkyWay Auth Tokenを使用して、細かい権限管理ができるようになっています。 一方で、ドキュメントには SkyWay Auth Tokenを利用するた…

今年買って良かった物2021

はじめに 毎年書いている「今年買って良かった物」の2021年分です。 今年は就職したので生活が色々と変わったのですが、去年ほど物を買うことはなかったように思います。 とはいえ、生活環境をより良くするためにいろいろ買ってみたので、買ったものと使って…

C# ( .NET Core)で作る自作TURNサーバー 〜開発のTipsとプロトコルの説明を添えて〜 #nttcom_ac2021

はじめに この記事は、 NTT Communications Advent Calendar 2021 12日目の記事です。皆様こんにちは。NTTコミュニケーションズ イノベーションセンターの@sublimerです。今年の4月にNTTコミュニケーションズに入社し、SkyWayの開発・運用の業務を行っていま…

WireGuardで拠点間VPNを設定してみた

はじめに WireGuardを使って、自宅とOracle Cloudの間で拠点間VPNを構築してみました。 Oracle Cloud上のVMから自宅サーバーのDBにアクセスする際などにセキュアな通信ができ、非常に便利です。 構築した際の手順やハマったポイントなどを記事に残しておこう…

Grafana、Grafana Loki、PromtailでNginxのアクセスログを可視化する最強のダッシュボードを作る

はじめに NginxのアクセスログをPromtailとGrafana Lokiで集約してGrafanaで可視化してみました。 とてもかっこいい最強のダッシュボードができたので、手順などを記録しておこうと思います。

IX2105でIPoEとPPPoEを同時に使用する

はじめに 以前記事にしたように、IIJのFiberAccess/NFではIPoEとPPPoEを両方使うことができます。 家庭用ルーターではどちらか片方しか使えないことが多いのですが、IX2105のような業務用ルーターでは同時に使うことができます。 先日(と言っても結構時間が…

PromQLのrate()とirate()の違い

はじめに Prometheusから取得したトラフィックのデータをGrafanaで可視化する際に、rate()では瞬間的なトラフィックの値をうまく計算できなかったので、その解決策などを調べた記録です。

豊橋技術科学大学を退職(卒業)しました

はじめに この度、無事に大学を卒業したので、退職エントリのような卒業エントリを書こうと思います。 高専のときの退職(卒業)エントリはこちらです。 sublimer.hatenablog.com