at backyard

Color my life with the chaos of trouble.

ファイル転送CLIツールである ft のNode.js実装 ft-js を書いた

Node.jsで実装したft-js

以前Goで書かれたファイル転送のためのCLIツール、ftについて書いた。

shinshin86.hateblo.jp

相変わらず今も利用させていただいているのだが、自分自身でも勉強のためにftのNode.js実装を作成してみようと思い、最近作ってみたのがこれ。

github.com

ftではサポートされているTLS 通信については現状サポートはしていないが、いずれそちらの機能も実装するつもり。
ftをNode.jsで実装しなおすことで、gRPC に関する学習にも多いになった。

なお、.proto ファイルについては ft 本家のコードをいじることなく利用させていただいている。 .proto で定義した内容について実際の処理を各言語で実装できるのが、gRPC を使う上でのひとつのメリットだと思うので、実際にそちらを体験できたのも良かった。
そのうちNode.js <-> Python とか Python <-> Go とかでのやり取りも書いてみたいところ。

今回gRPC を扱う上でハマったところはいくつかあったが、特にtimestamp周りはそれなりに試行錯誤していたような記憶がある。
そちらについては下記にまとめた。timestampの扱いが個人的にちょっと癖のある感じで、最初はあーでもないこーでもないとなっていたが、なんとかなってよかった。

shinshin86.hateblo.jp

というわけで、ft-js、機会あれば使ってみてください。 (まあ機会といっても、ft使いたいけど、今の環境 Node.jsしか入っていないし、じゃー ft-js 使うか、、、ぐらいの感覚で良いと思います。ftが良くできているので、どちらでも良い場合は ft おすすめです)

なお、ft-js のインストールは下記のようにやります。
(名前がかぶっていたのでscoped moduleでリリースしています)

# npm
npm install -g ft-js@npm:@shinshin86/ft-js

# yarn
yarn global add ft-js@npm:@shinshin86/ft-js

日々が速く過ぎていく問題について

よく妻とも話しているが、仕事をして、子育てをして、とやっていると、本当に毎日が早い。
ちょっと前に年が明けたと思ったらもう春が来ているし、このままではあっという間に子供も二十歳ぐらいになっているような気もする。
もちろん毎日は充実しているのでそこは問題ないのだが、充実した時間があっという間に駆け抜けていってしまうので、もう少し味わっていたいような気もするこの頃である。

では、日々の瞬間を味わうような機会を作ってみるのはどうかとこの文章を書きながら考えてみる。

例えば読書はどうだろうか?仕事に関係するような本ではなく、単純に自分が楽しむための読書の時間というのは良いかもしれない。
思えば若い頃は図書館で気になる小説を借りてきて、田んぼの隅っこにあるような誰もいない公園の古ぼけたベンチに座って本なんて読んでいたものだ (田舎にはそういう人気のない公園があるものなのです)。
「うわこの小説、まじつまんねー、読むの辛いわー」なんて思いながら無言でページをめくっていた時間は、自分の身になっていたかというとなんとも言えないが、まあそういう時間の過ごし方も人生の一つの過ごし方としてはありかもしれないと今になって思う。

そういう自分の身になるかどうかわからない時間というのを最近は意識的に避けている。
常にやるべきことは今やっている仕事に関することや育児に関すること、または自身のメンタルを良好に保つためのリフレッシュ手段などなど。
といった感じでやることにはすべて意味があるという状態がここ最近はずっとのような気がする。
もちろんそれは限りある時間の中でとても有用なことだと思っているが、そういうことばかりに着目して効率よく走り続けるだけというのも、まあ無粋かもしれない。

というわけで、書く意味なんて殆どないような、こんなどうでもいい文章を20分程うなりながら書いてみました。