理系学生日記

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

忍者TOOLS

bitcoinにおける署名アルゴリズム (ECDSA)

bitcoin において使われているのは楕円曲線暗号で、この楕円曲線暗号を使った署名(ECDSA)が bitcoin の一つの柱になっています。 ようやくですがこのあたりの署名について少しずつ少しずつ理解が進んできたので、忘れる前にその理解を書き残しておこうと思い…

「シリコンバレー式最強の育て方」を読んだ

1 on 1 を本格的に行うにあたって、こちらの本を読むことになりました。 これまで、1 on 1 を行ったことはあったんですが、きちんと体系だてて学んだことはありませんでした。この本は、いわゆる「上司」が部下に対してどのようにして 1 on 1 を行っていけば…

初歩から学ぶ gRPC の UnaryServerInterceptor、StreamServerInterceptor のつくりかた

gRPC には Interceptor という概念があるというのを先日のエントリで書きました。 ただ、じゃぁ Interceptor ってどういう風に作るんやっていうところまでは書けなかったので、今日はそのあたりです。 簡単に試せる話題として、送受信ログを出力する仕組みを…

gRPC の proto を生で読むのに人生疲れたので protoc-gen-doc で gRPC の API 仕様を HTML 化して読む

gRPC を使いはじめ、.proto に多くの RPC を定義してきました。そうすると、 様々な Req/Res が階層構造を持つ message として定義されるようになる その message が様々な RPC で横断的に使われるようになる ということが当然のように起こります。 ぼくは従…

gRPC の Interceptor 概観

Unary と Streaming Interceptor mercari go-grpc-middleware Unary と Streaming Interceptor の前に gRPC の種類について書かないといけないのですが、 gRPC には 大きくわけて 4 つの RPC が存在しています。 Unary RPC Server streaming RPC Client stre…

pkg/errors はもう外すことができないライブラリ

ここ 2 ヶ月くらいずっと golang でバックエンドを書いています。 その中で、絶対に外せないなと思っているものの1つが pkg/errors です。 ぼくがこのライブラリを知ったのは、以下の記事でした。 Golangのエラー処理とpkg/errors Don’t just check errors, …

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 はすごく 公式ドキュメント …

写真のファイル名を EXIF の日時付きの名前にリネームするツールつくった

どういうものか 何に使うのか いろいろあった 画像形式 写真編集アプリで時刻情報が消失する というわけで どういうものか 指定ディレクトリ配下の JPEG あるいは HEIC ファイルの日時情報を EXIF から読み取って、YYYYmmDD-HHMMSS.ext というファイルとして…

Windows でソフトウェアを chocolatey で管理すると超絶便利になりそう

これまで家に Windows マシンがなかったのですが、諸事情で Windows マシンがあったほうが捗るよなと思い、何年ぶりかで自分の Windows マシンを手にしました。 会社の PC も Windows なのですが、なんか忙しさにかまけてろくにセットアップもしなかったので…

Cask から el-get に移行した

重い腰をあげて、Emacs の elisp 管理を Cask から el-get に移行しました。 移行の背景 el-get への移行 移行の背景 このあいだ久しぶりに Windows PC を買って、現在進行形で環境設定を行っています。 そこで引っかかったのが Emacs の設定移行でした。 も…

妻の誕生日に東京湾クルージングに行った

今年は妻の誕生日にディナークルーズをプレゼントしました。 これはもうなんというか、休みの間にバチェラー・ジャパンを見てたら「あぁこのくらいのサプライズが必要なのだなぁ」と心を打ちのめされたことが大きい。 Season 1、2 ともに面白いですが、Seaso…

blogsync と textlint ではじめる、ブログエントリの文書校正

はてなで Blog を書くようにしてから随分になるんですが、ようやく重い腰をあげ、Blogsync と textlint で基本的な文書構成ができる仕組みを立ち上げてみました。 $ make draft するとエントリが下書きできるようになり、 $ make lint すると文書構成が行わ…

パイプ前のコマンドの結果が空だったら xargs は何もしないようにする

みなさん xargs を使うときって良くあると思うんですけど、ご存知の通り通常 xargs はパイプの後段に配置します。 たとえば、doc ディレクトリ配下のファイルを lint したいとして、以下のようにする場合があります。 $ find doc -type f -print0 | xargs -0…

「スクラム現場ガイド」を読んだ

スクラム現場ガイド、控え目に言って最高でした。 スクラムに取り組みはじめた森羅万象、ミドリムシからシロナガスクジラまで生きとし生けるものすべてが読み、心を震わせ、そして流した涙がベロシティの向上として結晶化すると良いと思います。 スクラム現…

東海道・山陽新幹線で乳児連れで帰省するとき用のノウハウ

そういや先月に故郷である山口県東部へ帰省しました。 みなさんご存知か知りませんが、山口県って東京から移動するにはかなり微妙な位置にあります。 飛行機で帰っても新幹線で帰ってもあんまりドアツードアだと時間的に変わらなかったりします。 一方で、山…

ConsulやSerfのGosippingにより情報はどれだけ速く伝わるのか

Consul や Serf でも、Gossiping と呼ばれる通信方式が良く使われます。 Gossiping というのはなにかというのは wikipedia:en:Gossip_protocol にもまとめられています。 オフィスにおいては、情報を持っている人がウォータークーラーの前で会った人にランダ…

ぼくらのぎっくり腰戦争(2日目)

目が覚めた。ちょっと寝れてたっぽい。相変わらず腰は痛いけど、昨日のような息のできないような長い痛みっていうのは感じなくなってた。 ちょっと快方に向かっているような気がする。 救急車を呼ぶべきか それでも、とてもじゃないけど立てないし、日常生活…

ぼくらのぎっくり腰戦争(1日目)

ちょっとマジでギックリ腰とんでもなかった。舐めてた。腰痛舐めてたよ。人生舐めプしておりました。たいへん申し訳ありませんでした。 願わくば人生で何度も繰り返すことでもないので、きちんと記録に残しておこうと思います。 ここではぎっくり腰が再発し…

なぜぼくがConsulに心奪われるのか

ちょっと来週の中央線 Meetup で発表する Consul の資料をつくっているんだけど、つくっていたらすごい興奮してきて異常に興奮してきて、 いややっぱり Consul ってスゴいんすよみたいな熱い気持ちを吐露したくなったので発表資料まだぜんぜん作ってないんで…

厚生年金基金の基本プラスアルファ部分をどう受け取るか

実は先日、家に年金に関する「基本プラスアルファ部分の受取方法のご選択について」という書類が届きまして、 いったいぜんたいこれ何者や、という感じでした。 読んでいくと、あーコレあのときのやな、という記憶が蘇えってきたのですが、いつも学びなおす…

コンテナを使った分散システムのデザインパターン(Design patterns for container-based distributed systems)

Consul の文脈で出てきた Sidecar Proxy なんかは Sidecar Pattern に あてはまります。ぼく自身、このあたりの知識があまりないので、初歩的な知識を得たいと思い、以下の論文を読んでみました。 Design patterns for container-based distributed systems.…