2024-01-01から1年間の記事一覧

今年買って良かった物2024

はじめに 毎年書いている「今年買って良かった物」の2024年分です。 今年は、ここ数年で一番買い物が少ない一年だったような気がします。 とはいえ、いくつか物は買っているので買って良かったものを紹介しようと思います。 これまでの買って良かった物は↓で…

PostmanのCapture HTTP traffic機能を使うとCLIツールのデバッグが楽になる

この記事は、Postman Advent Calendar 2024 23日目の記事です。 はじめに 先日、GoでCLIツールを作ってみました。 詳細は以下の記事で書いているので、もしよかったら読んでみてください。 engineers.ntt.com 今回は、CLIツールを作る過程でPostmanのCapture…

MastodonのOpenTelemetry対応をちょっとだけ改善してみた

この記事は、Fediverse (2) Advent Calendar 2024の23日目の記事です。 はじめに 皆さんこんにちは。 @sublimer です。 あすてろいどんという汎用のMastodonサーバーの鯖缶をしています。 本業は、インフラからプログラミングまでなんでもやるソフトウェアエ…

Cobra & Viperで設定値がうまく読み込まれなかった原因と対処

はじめに GoでCLIツールを作ろうと思い、Cobraというライブラリを採用することにしました。 Cobraの作者の方はViperという設定値をいい感じに管理するためのライブラリも作っており、これらを組み合わせて使う方法が公式ドキュメントで紹介されています。 今…

はてなブログの記事の著者としてMastodonアカウントを設定する方法

はじめに Mastodon v4.3.0からfediverse:creatorというOGPのタグがサポートされるようになりました。 これにより、記事のURLが載った投稿がなされると、その著者としてあらかじめ設定されたMastodonアカウントが表示されるようになります。 さっそく本ブログ…

TypeScriptのコードをそのままデプロイできてOpenAIのAPIもSQLiteもCronもメール送受信も使える高機能なPaaSの「Val Town」

はじめに 先日MastodonのTLを眺めていたところ、Val TownというPaaSを紹介している投稿*1を見かけました。 調べてみたところ、TypeScriptのコードをそのままデプロイでき、HTTPリクエストに加えてCronやメールによるトリガー実行、OpenAIのAPIやSQLite、Blob…

MastodonのOpenTelemetry対応を試してみた

はじめに 10月8日にリリースされたMastodon v4.3.0から、OpenTelemetryでアプリケーションのトレース情報を記録できるようになりました。 早速使ってみたので、トレース情報を可視化するまでの流れを紹介します。

PlaywrightでWebSocketの通信をモックする

はじめに Playwrightでは、v1.48.0からWebSocket routingという機能を使ってWebSocket通信をモックしたり通信内容の一部を改変できるようになりました。 動作を試すために実際にサンプルを作ってみたので、サンプルを元にWebSocket routingの機能を紹介しま…

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