ENECHANGE Developer Blog

ENECHANGE開発者ブログ

RubyWorld Conference 2018 2日目

昨日に引き続き、RubyWorld Conference 2018の報告です。

基調講演-2 Don't Stop Moving

情熱プログラマーの著者としても知られるMicrosoftのChad Fowlerさんの講演でした。情熱プログラマーは昨年読んでいて、講演後にサインをもらっている人もいたので、持ってこればよかったと後悔しています。

では、1時間の講演の中で、印象に残った点を紹介します。

・生存戦略 深さと広さという指標で、Linux Kernal Engineerのように狭く深いエンジニアという戦略もあるし、SaaSスタートアップのCTOのように、様々なことを広く知っている人になるという戦略もあるということでした。 その昔、Ken Smithさんに3つのことを学びなさいと言われたそうです。その3つとは、ディレクトリサービス、Unix、プログラミング言語だそうです。その現代版として、OS(Linux等)、データベース、プログラミング言語を学ぶと良いとおっしゃっていました。

・Terminal Care 私が印象に残ったのはTerminal Careの話でした。日本語に訳すと終末医療ということですが、技術の変遷はあるけれども、携わった技術に対して最後まで面倒を見て欲しいということをおっしゃっていました。

・先延ばし 先延ばしにしようとしていることこそが、重要であるということでした。先延ばしにするということは、心理的な抵抗があるということです。長期的に見れば、先延ばしにするのはいい考えではないという研究があるそうです。 その話の冒頭にThe War of Artという本の紹介をされていました。日本語版はやり遂げる力です。

・マインドフルネス 皿洗いをするときもマインドフルにやる。些細なことでもじっくり考え、タスクに集中する。今はチャット、SNSなど様々なツールがあり、人間の集中力が落ちてきており、あらためて集中の大切さを説かれました。

・Smallプロジェクトの方がモチベーションを保ちやすいし、成功もしやすい



B-1、B-2、B-3-1、B-3-2は主にIoTやmrubyに関する話題でした。

B-1 RubyによるIoTデバイス制御

mruby/cについての話題で、酒造りをIoTで管理していく事例の紹介でした。IoTを行おうとすると、TCP/IP、Cloud、RDBとKVS、サーバーサイド、モバイル、セキュリティ、テスト、アナログ回路、マイコン、PCBといった様々な知識が必要です。それをmruby/cを用いて実装しているという事例でした。

B-2 ngx_mruby v2におけるノンブロッキングなmruby実行の実装詳細

GMPペパボ株式会社の山下さんの発表でした。ngx_mrubyはnginxのモジュールで山下さんはngx_mrubyのv2にコントリビュートしている方です。ペパボでは、数百万ドメインの証明書をMySQLで管理したり、コンテンツキャッシュのポリシーをHTTPのAPI経由で取得し、nginxのキャッシュのON・OFFをコントロールしており、nginxの設定を動的に行うためにngx_mrubyを利用しているとのことでした。 ngx_mrubyのv1では、並列処理ができなかったが、v2では並列で実行可能に修正したとのことです。 ngx_mrubyの実装についての具体的な紹介でした。

B-3-1 Rubyで作ってよかった工場IoT「SmartFollow」

工場では各設備の状態でインシデントが起きた際、以前は赤ランプなどでわかるようにしていましたが、今は作業員がもつスマホに通知されるようになるなど、工場内のIoT化が進んでいます。 その中で、工場IoTをSNSと比較して紹介され、SNSに似ているところと異なるところをベースに紹介していました。 SNSと似ているところとしては、リアルタイムプッシュ通知、設備ごとの担当者への一斉通知、作業者から対応状況や結果の発信、ユーザ認証、端末認証などが挙げられ、異なるところとしては、トリガーが工場の設備であるということ、ステータス管理が必要、アラームの際の通知やエスカレーション、消費電力への配慮のウエイトが高いなどが挙げられました。 通信には、HTTPやWebSocket、MQTT、TCPソケット通信、JSON、XML、CSVなど様々な形式がありますが、Rubyはこうした処理も便利に利用できるのが利点とおっしゃっていました。

B-3-2 mruby/cを用いたプログラミング教育向けデバイスの開発

arduinoにmruby/cを用いたプログラミング教育の紹介でした。1日目にもプログラミング教育の講演がありましたが、arduinoを用いた例になります。最初はLチカ(LEDチカチカ)から始められたそうですが、Lチカだけでは保護者の感動が薄いなどの改善点も指摘され、そうした視点からの改善も行なっているそうです。 また、教育プログラムの中で、mruby/cのバグでそれまで一生懸命C言語で書いていたものが、最終日に修正されmruby/cだと簡潔に書けるというところに受講生が感動した様子なども紹介されていました。



最後のセッションとなるB-4は決済と同時接続に関する話題でした。

B-4 日本初のキャッシュレス即売会を支えた決済アプリ pixiv PAYの技術

pixiv PAYは同人誌即売会での購入をクレジットカードで利用できるようにするシステムで、pixivでは2017年の夏のコミケにむけてRailsエンジニア5人ほどで1ヶ月ほどで実装したそうです。 同人誌即売会という、通常とは厳しい環境(人が密集していることで、モバイルのネットワーク環境が悪い、イベント期間中にアクセスが集中するなど)において、決済処理でのタイムアウトの問題も考慮した設計の工夫や、社内で人を集めてテストした話などが紹介されていました。

(後日加筆・修正いたします)