棚卸し (201810)

定期的にやるやつ。

Erlang/OTP

相変わらず Erlang/OTP ばっかり書いてる。むしろ Erlang/OTP しか書いてなくて悩ましい。NIF も触ったりしているが、メインにはしていない。

OTP 21.1 も出て来年は OTP 22 で高速化がちまちまと入って来そうで楽しみ。CTO が Rust を試したりしてくれているが、 Erlang から卒業することはなさそう。それよりは Go を触っていったほうがいいのではないか?とは思ったりしている。

SO_REUSEPORT を使ってみたりしているが、新しい技術的なものは殆ど触れておらず、既存の技術でいかに性能を出せるようにするかという方針。

WebRTC

メインのお仕事。何より最近は社外のお手伝いが減ってきたのでほぼほぼ WebRTC につぎ込んでいる気がする。

WebRTC SFU と WebRTC Native Client を色々いじってみている。Native Client は C++ でゴリゴリと書いているが自分は書いていない。

RFC を読みながら新機能を試したり、ブラウザが新たに対応した API や機能に対応したりと、正直やることは多くありすぎる。

Simulcast が実際に動作してきて課題だった画質選択ができるようになってきたのは本当に良い。Safari が VP8 に対応したりと色々前々進んでいる気がする。今後が楽しみ。

当面は DataChannel 、Simulcast 、リレー機能、 ULPFEC/FlexFEC といった WebRTC 寄りの機能や、自社製品独自機能である WebRTC SFU での 1 部屋に 100 人規模のユーザが入れるスポットライト機能を仕組みを改善していく。

目標としては高画質で超低遅延で大規模配信を実現していきたい。大きな課題ではあるが、それを実現できる仕組みにチャレンジしていくのがミッションだと考えている。

ハードウェアエンコーダー / FPGA

FPGA は全然やれていないが、最近は WebRTC Native Client をやっていて思うのが、エッジ側でのハードウェアエンコーダーがとても重要なことを実感してきている。

サーバ側での変換より、エッジ側での変換と配信に興味を寄せていきたい。H.264 / VP8 / VP9 の変換をいかにエッジ側で消費電力を抑えつつ、CPU を使わずにやるかという世界に飛び込んでいきたい。

サーバ側での変換は今の所やらずに、エッジ側で。

負荷試験

今年前半はかなりの投資を負荷試験にしていたが、お腹いっぱいなので当面はいいかなと。

当面は負荷試験ツールの開発からは離れるつもりだ。ただ WebRTC 側でやることはあるかもしれない。それはその時。

QUIC

WebRTC で必要になるまでは様子見。今実装しても動かす場所がない。QUIC PubSub とかは面白そうだが、今別のプロダクトを持つのは厳しい。

QUIC は日本人が色々前に前に進んでいることから焦らずに、時期を見て。むしろ後追いで十分。WebRTC over QUIC はそんなにやる人はいないだろうし。

Django / Flask / Python 3

ウェブフレームワークといえば自分にとってはこの2つで、これ以上は一切使っていない。とはいえウェブアプリ案件は自分はやらないので、Django はドキュメント読んだりしてなんとなく理解してるレベル。

Flask はちょっとしたサンプルウェブアプリを使うのに利用している。自分の中では Web アプリのサーバサイドは Python で十分。

React / React Native

自分ではったく使わないが知識だけは入れておきたい。React は自社でウェブ案件をやるのに必ず使っている。React Native もやっていっている。

React Native は WebRTC 向けライブラリを自社で持っていることもあり、積極的に使っていきたい。React は GatsbyJS で使うことから最低限は使えるようになっておきたい。

GatsbyJS / GraphQL / Netlify

JAMstack の代表格である GatsbyJS と Netlify を自社の製品サイトや、自社サイトに使っていきたい。今は Django を利用しているがほぼお知らせくらいの更新しかないことから、動的なサイトである必要はない。

おそらくだが WebRTC とも相性はいいはずなので、使っていきたい。

Firebase

これは React Native Firebase があることを知って興味を持った。もともと Firebase が凄いのは知っていたが最近は Cloud Firestore が便利だったり、Cloud Function があったり、色々便利そう。

React Native + Firebase + WebRTC という組み合わせでなにかやっていきたいと考えている。

無理に新しい技術を覚える必要はない。知識だけ得ておけば良い。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store