理系学生日記

おまえはいつまで学生気分なのか

Protocol Buffer で時刻(タイムスタンプ)を扱いたい

API でのリクエスト、レスポンスのフィールドとして、タイムスタンプを定義したいときがあります。 しかし、Protocol Buffer の言語仕様上、Scalar として日付、時刻関連の型は定義されていません。このようなとき、どのように対処すれば良いでしょうか。 日…

gRPC の Server Streaming RPC で HTTP/2 の挙動を確認してみる

先日は gRPC の Unary RPC で HTTP/2 の挙動を確認してみました。 gRPC Unary RPC で HTTP/2 の通信を追ってみる - 理系学生日記はてなブックマーク- gRPC Unary RPC で HTTP/2 の通信を追ってみる - 理系学生日記 今日は、gRPC の Server Streaming RPC を…

gRPC Unary RPC で HTTP/2 の通信を追ってみる

gRPC でいろいろとトラブルが起きており、そのトラブルシュートをしようと思っています。 しかし、gRPC は HTTP/2 の上で動作するプロトコルであり、HTTP/2 の RFC を見ても、イマイチ HTTP/2 が見えてこない。HTTP/2 のプロトコルが見えないと、gRPC の挙動…

Wireshark で gRPC・HTTP/2 通信をキャプチャしても TCP としか判定されない

gRPC、および、その下で使われている HTTP/2 について、パケットキャプチャして解析しようとしていました。 パケットキャプチャといえば、wireshark ですが、gRPC の通信をキャプチャしても、gRPC でも HTTP/2 でもなく、TCP としか判定されないということになって…

最新セマンティックバージョンのタグを取得する

デスクトップアプリを作ってて、デスクトップアプリ上で version を表示させたいということがありました。 version 自体は git でタグ付けしているので最新のタグを取得すれば良いはずだったのですが、今回のアプリは、semantic version 以外に integration …

git-bash 配下の npm run で cmd.exe が使われる…だと…

npm script が楽やなと思って、便利系ツールの起動 (docker-compose.yaml がリポジトリに散らばったコンテナ群の一斉起動とか) を npm script に寄せているのですが、npm run したらエラーが出るといるメンバの溜息を聞いて調べてみるとおもしろいことが分か…

特定ディレクトリ配下にあるすべて package.json について yarn install を実行する。ただし node_modules 配下のものは除く

開発プロジェクトには便利ツールみたいなものを作って生産性アップの夢を見ることが多いです。 いまのプロジェクトでもその例外に漏れず、WIndows と Mac の二者がいるということもあって、node.js で CLI ツールを作っています。 そこで抱えている課題は、…

安全でない通信路上で安全に鍵を共有できるECDHとは

Bitcoin に触れるようになってから、ようやく ECDH の全貌を把握できるようになってきました。 ここでいう ECDH というのは、楕円曲線を用いた「安全でない通信経路上で安全に鍵を共有する方法」になります。 身近な例では SSL/TLS における暗号化スイートの…

Electron から native module を使うときの NODE_MODULE_VERSION のエラー

Electron でとある node のモジュールを使おうと思ったら (snip) hoge.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 45. This version of Node.js requires NODE_MODULE_VERSION 64. Please try re-compiling or re-i…

Bloom Filterの数理

プロジェクトの中で、Mastering Bitcoin の読書会を進めていまして、ぼくはこの本を読むのは 3 周目になります。 ただ、読み直す度に新しい発見があるのがこの本であり Bitcoin の技術でして、その中で Bloom Filter についての話題がありました。 Bloom Fil…