理系学生日記

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

忍者TOOLS

Multi-stage builds で gRPC サーバを立ち上げる

諸々で gRPC サーバを構築したりしているのですが、フロントを開発している人に gRPC サーバ + データベース一式を簡単に立ち上げられるようにしたいという思いがありました。 また、他にもシステム間連携を行う想定もあるので、できれば docker-compose に…

golang で AES/CBC/PKCS#7Padding の暗号化・復号化

golang では crypto/cipher や crypto/aes を使って、AES で暗号化を行うことができます。 しかし、ブロック暗号化であるにも関わらず、なぜかパディングが定義されていない。 これじゃ暗号化できないやんけ、ということで、これと戦った記録です。 ブロック…

gRPCをcurlのようにコンソールから呼び出せるgrpcurl

サーバを作る以上、クライアントがないと開発が面倒です。 しかし、gRPC はバイナリプロトコルである HTTP/2 上で Protocol Buffer をシリアライズに使います。 このため、テキストプロトコルである HTTP/1.x のようにクライアントとして curl を使うといっ…

gRPC サーバを golang でつくるときの基本を押さえる

gRPC サーバを作ることになったので、まずは基本的なところを押さえようと思います。 いろいろ調べつつ書いているのですが、gRPC 初心者なので、間違ったところがあれば指摘していただきたいです。 gRPC の種類 .proto からのサーバ・ソースの自動生成 gRPC …

「Bitcoin Developer Guide」を読んだ

ここ 1 週間くらいずっと Bitcoin の勉強をしていたのですが、2 日くらいかけて Bitcoin Developer Guide を読みました。 Bitcoin Developer Guide は、bitcoin.org で公開されている Bitcoin 開発者向けのドキュメントです。 じゃぁ bitcoin.org とは何かと…

JSON のキーはダブルクオテーションで囲むべきか

囲みましょう。 RFC 8259 の objects によると、objects の member は member = string name-separator value とされています。つまり、member を構成するキーの部分の型は string です。 で、string の定義はっていうと、strings に定義があって、 string =…

「Mastering Bitcoin」を読んだ

Mastering Bitcoin を読みました。 たぶん原文は bitcoinbook で管理されているみたいなんですが、ぼくが読んだのは 日本語訳 の方です。 Mastering Bitcoin: Programming the Open Blockchain作者: Andreas M. Antonopoulos出版社/メーカー: O'Reilly Media…

REST API における同時並行制御

以前「API で同時に更新要求があったとき、どうするのが定石なんだろう」というのを調べたのですが、きちんとまとめていませんでした。 それからちょっと時間がかかってしまいましたが、簡単にここでまとめてみます。 取り組む問題 勧告 概要 実現 Etag Prec…

ぼくが育児休業を取得したときに得た知見

ぼくは 6 ヶ月間にわたる育児休業を取得していたのですが、じつは明日でその休業期間もおしまい、ぼくの心ももうおしまいです。 もはや流す涙も枯れ果てていて、昇る朝日に届かぬ拳を突きつけながら無力感に苛まれるしかない。かなしい。 とはいえその育児休…

「Elasticsearch実践ガイド」を読んだ

Elasticsearch 実践ガイドを読みました。 Elasticsearch実践ガイド (impress top gear)作者: 惣道哲也出版社/メーカー: インプレス発売日: 2018/06/15メディア: 単行本(ソフトカバー)この商品を含むブログを見る Elasticsearch はすごく 公式ドキュメント …