2021年12月現在の近況

この記事は

この記事は Rubyist近況[1] Advent Calendar 2021 - Adventar の13日の記事です。

adventar.org

先日は @takano32 さんの 32nd Blogger: とある Rubyist の「次の20年」 でした。

 

近況

ブログに近況を書くのは7年ぶり

最後に近況っぽいことを書いた退職エントリが2014年なので7年ぶりのようです。その間退職をしてないかというと2回退職をしておりまして、ブログで書いた退職した会社含めて現在4社目の会社に勤めております。

ここのところのお仕事

今はMODEという IoT の会社で働いております。B2B 向けの IoT 基盤なんて言ったりしてます。

IoTって言っても皆さんが想像するかっこいいスマート・オフィス/ホームを実現!みたいな感じではなく、インターネットに繋がってない残りの世界をつなぎに行くような感じです。世の中、生産設備とか各種ロボットとかまぁたくさん機械があったりするし、ビルメンテナンスも機器もいっぱいあるんですが、案外インターネットに繋がってないんですね。ほんと、思ったより繋がってない。そういう分野の機器をインターネットにつなげてどうするんだって言われそうでもありますが、自分のところに来る各事例を見て、ちょっと考えただけでだいたい繋いだ方が便利そうなので、基本的に便利って結論に倒していいと思ってます。インターネットに繋がってない端末なんて今時珍しいですが、そういう小さなローカルなコンピュータは繋がってないんです。昔 Sun が「The Network is the Computer*1」とか言ってたじゃないですか。めっちゃかっこいいこのフレーズ。おまえをコンピュータにしてやろうか〜〜〜、ですよ。え、閉鎖環境の端末…?なんですかそれは…。

スマート・オフィス/ホームはどっちかというと、インターネットを持ってくるとインタラクティブに何ができるか、みたいなとこあると思っていましてその辺が違うかなという。まぁ繋がってないヤツつなぐより、持ってくる方が楽しいしイノベーティブじゃんみたいなところあるとは思いますが、600さんとかQrioさんとかみたいに基盤じゃなくて個別サービスを全力で提供する企業でやった方が強い気はしますね。

あ、でも、もともと何もないところにセンサー置いてデータとるとかもやってるのですが、能動的にその場所にアクションを送るというよりデータを収集する方が多いです。やっぱりスマート・オフィス/ホームとかとは違いますね。いつぞやのイベントで話したんですが、私の心拍数はインターネットに繋がっていますが (APIトークンが必要です)、心臓になんかアクションを送ることはできません。私はコンピュータなのでしょうか。

Rubyist近況Advent Calendar 2021だよねここ。てことはmruby書いてるの?

書いてないです😇 。ごめんて。もっぱら Go でコードを書いており、時折 TypeScript でコードを書きます。Go はサーバサイドとエッジサイドで書いてます。エッジサイド?どこ?ってなるじゃないですか。モノの近くのコンピュータはエッジサイドってしばしば呼ばれるんですね。下図は勤め先のスライドを拝借してきていますが、私がコード書くのはこの左側の Gateway って呼ばれる場所です。

f:id:takeshinoda:20211213183318p:plain

エッジサイドとはどこか

組み込みなの?ってよく聞かれるんですが、組み込みのコードは書いていないです。もっぱら機器と通信するコードがほとんどです。Gateway って呼んでますが、ネットワーク機器のGateway じゃないです。実態は Linux が動いてるただの PC です。ただし小さい。ご存じの方も多いかと思いますが、 Intel の NUC を使うことがほとんどです。こいつがセンサーとかロボットの制御マシンとか生産設備と独自のプロトコルでお話して、データを整形してインターネットに上げています。その部分を Go で書いてるんですね。じゃぁ TypeScript はフロントエンドのコードを書いてるの?って感じですが、やっぱりエッジサイドです。node のプロセスモデルっていうんですか。イベントをエミットする感じのアーキテクチャって IoT の Gateway 作りには便利なんですよね。Goの goroutine と channel もそうなんです。この辺はいつかどこかで話せるといいですね。

Gateway にデータが入ればあとはこっちのもんで、 MQTT とか HTTP とか AWS とかで技術的にはうぇーいです。でも、世の中うまくいかないもんで、IoT の B2B 基盤のデータモデルとかインフラ設計ってなんかWebサービスの設計とちょっと感覚が違うくて難しいなぁという昨今です。このへん、CTO と CEO がWebインターネット発展史ど真ん中みたいなところにいたエンジニアなので、設計に対する日和見度が低いみたいな大胆さもある気がしていますが。

納品しない B2B の IoT

納品しないです。でも納品しないスタイルで個別の案件を毎度作るってこともしません。でも個別案件をどんどん抽象化して進化させます。みたいなモデルでお仕事やってるんですが、うまくいけばこれの近況もいつかどこかでお話しできるといいなぁって思ってます。

英語

中学以来赤点すれすれの点数でしのいできたのに、公用語が英語の会社に入ってしまいました。なんか英語苦手っていうと謙遜なんでしょみたいな反応もらうんですが、ガチで苦手なときなんて言えばほんとに苦手って伝わりますみたいな感じです。会社のひとたちみんな優しくて、壊れすぎの英語を話しても意図を理解しようと努めてくれるし、タケシの英語は向上してるって言ってくれるんですが、とほほな毎日です。

趣味的な

特に趣味らしい趣味は持ってなかったんですが、コロナになって家にいるので趣味は増えました。家にいると自由度高まりますよね。何をやってるかを書くと面倒なので書きませんが、時々 Twitter とか Facebook でにおわせてます。コロナも落ち着いてお会いできたらホップの話とかできるといいですね。

特になにも調べなかった Ractor

Ractor ってどうなんですかね。Gateway って細かい入力が不定期にジャブジャブ入ってきて、時々コンフィギュレーションがインターネットから落ちてきて適用したります。インターネットは切れがちだし、センサーとかの入力系統は時々エラーで止まったりするけど、そいつが起因で止まるのは困ります。Ruby を使うことは会社の技術セットとかエッジサイドへのデプロイの容易性の観点で無いんですが、 Ractor の概要を聞いたときは IoT に便利そうって思ったんですよね。

IoT やろうぜ

なぁ…みんな…IoTやろうぜ…。AWS 覗くと IoT のサービスも充実しててもう IoT っていってもそんな開拓感ある?的な感あるじゃないですか。あと儲かってんの?とか。Web サービスやるって時、技術的には、クラウドで React で M Lでえいーみたいな感じで、そこそこの規模なら結構やること決まってる感あるじゃないですか。いやそんな簡単じゃないのはわかってますが。おまえやってみろ?ごめんて。比較して優劣を言いたいわけじゃなくて、なにが言いたいかというと、IoT だとなにをどうやればみたいな定跡がめっちゃすくない。苦労する。その辺がまだまだ面白いわけです。なので、そこの人、IoTどうよという話です。

ごあいさつ

これからもよろしくおねがいします。

*1:今商標として Cloudflare が持ってるらしい https://note.com/usop/n/nfdb22e4d7995