giantneco’s blog

技術メモ

builderscon 2019 に参加してきたメモ

去年に続き今年も builderscon に参加してきた。

builderscon 2018 - giantneco’s blog 去年のメモ。

今年の builderscon 2019 は 8/29(木)の前夜祭から から 8/31(土) までの開催で、 元々なにか特定の技術にフォーカスするという集まりではないので、 セッションの傾向も前回とはかなり異なっている。

去年の発表がかなりよかったので今回も期待していたが、 思ったとおり色々な分野の話が聞けたので楽しかった。

前回も思ったけど運営はすごくよくやっていて、ネームカードの準備とかすごくしっかりできているので助かる。 ただ今回は前回と会場が変わったからか列管理がいまいちだったかも。次回には改善されているはず。 後はフィードバックに書き忘れたが、初心者向けとかわかりやすくしてもらえると助かったかな。

前夜祭

今年は 8/29 のカンファレンスの前夜祭にも参加してきた。

  • Hololens とドローンの(まちがった)活用法
  • MySQL でケーキを焼きました
  • 面白いダジャレを言うと、リアルに布団が吹っ飛ぶ装置を作った
  • CROSS ME で黒髪の眼鏡女子とマッチングするデバイスを AI と IoT を駆使して作った話

ゆるい感じのセッションではあったが、技術的には機械学習、AR・VR、IoT といったレベル高いものが使われている。

機会学習でリアルに「布団」が吹っ飛ぶ装置を作ったという話が一番印象にのこったかな。 まさに技術の無駄遣いという感じで、機械学習と Raspherry Pi を使って実際に動作するプロトタイプをつくるというのはやっぱりすごい

1 日目

Open SKT: メルペイ開発の裏側

Open SKT: メルペイ開発の裏側 / builderscon tokyo 2019 Open SKT - Speaker Deck

メルペイにおけるアーキテクチャの話で、 内容としては新しいメンバー向けのキックスタートや、メルカリとの方針の違い、金融を扱う上でどういうところに気を付けたか、などを聞いた。

お金が絡むと気をつけないといけない法律も増えるので、結構○○ Pay は大変そうなイメージがあるが、メルペイではうまくやっているようだった。

キーボードは好きですか?

キーボードは好きですか? / Do you like keyboards? - Speaker Deck

ランチセッションでは自作キーボードの話を聞いてきた。 内容としてはキーボードの部品の解説や、どういう魅力があるか、また自作キーボードの最近の流行とかの話があった。

なお自作キーボード関連のセッションは2つあって、かなり流行っているのかも知れない。

個人的にはそれほどキーボードにこだわりはないし持ち歩く物が増えるのは避けたいところだが、 やっている人たちは相当楽しそうなので時間と資金に余裕ができたら試してみたいのはある。

コンパイラをつくってみよう

コンパイラをつくってみよう / How to make a compiler - Speaker Deck

ライブコーディングでコンパイラを作ってみるセッション。

簡単な式を読み込んで、対応するアセンブリを出力するまでをライブコーディング実演した。すごいね。

使用した言語は Go で、 コンパイラ作るのにはそれほど向いてないんじゃないか?とも思う。 とはいえ Go でコンパイラインタプリタを書く書籍も出ているし、発表者のいう通り好きな言語でやるのが重要なのかもしれない。 コンパイラをセルフホストしたいのであれば、やっぱりその対象言語で書くことが必要になるだろうし。

非同期処理の歴史から見たコンピューティングの進化

非同期処理の歴史から見たコンピューティングの進化 - Speaker Deck

主に Java 界隈の非同期処理の話。

Java というか JVM の話が中心になるので仕方ないが、より低レイヤや軽量スレッドとかに踏み込んだ内容ではなく、 どちらかというと初心者向けだったかも知れず自分にはちょっと物足りなかった。

Optimizing Ruby with JIT - 最速の言語を目指して

Optimizing Ruby with JIT - Speaker Deck

RubyJIT を入れる話。

単純にアセンブリに下だけではほぼ速度向上がなかったのはちょっと驚いた。 効果を出すには Ruby VM の仕組みを理解した上で、最適化したアセンブリを出す必要があるようだったので、結構大変そう。

なお発表された JIT よりも速い実装はあるとのこと。その実装では組み込みメソッド以外のメソッドを呼び出そうとすると Seg fault するようにメモリを保護しておいて、メソッドが上書きされていた場合は割り込みハンドラで処理するようにしているらしい。 確かにメソッドが上書きされてない場合にはそのまま通って速いのだろうが、かなり黒魔術だなあ。

2 日目

ウォレットアプリ「Kyash」の先 〜「Kyash Direct」のアーキテクチャ

ウォレットアプリKyashの先 〜 Kyash Directのアーキテクチャ - Speaker Deck

Kyash でのアーキテクチャの話。

電子決済の話はメルペイのセッションでも聞いた。マイクロサービスを採用しているのは同じだったが、Kyash Direct の方は DDD を使って設計を行なっている。 マイクロサービスにしろ CQRS にしろ採用理由が明確になっているのが聞けたのでよかった。

HyperLogLog sketchは面白い

HyperLogLog is interesting - Speaker Deck

データセットの濃度を推定するアルゴリズムの話。

ビッグデータ界隈ではよく使われるらしいが、今回聞いた話では一番知らなかったことかも。

やりたいことは数え上げなのだが、統計的な処理を行うことで濃度 N のデータセットについて、濃度推定をO(1)でやってしまえる。 統計処理はたまに思っても観なかったことができるのですごい。

Elixir を支える技術 -「落ちない」システムの秘密に迫る

Elixir: Under the Hood - Speaker Deck

Elixir の話。 Elixir の基礎に加えて、最近の改良の話とかもあった。 最近はネイティブにコンパイルしたり、 JIT を入れようという動きもある様子。

スーパーカミオカンデの開発と運用

http://www-sk.icrr.u-tokyo.ac.jp/~hayato_s/20190831_Super-Kamiokande.pdf

スーパーカミオカンデの話。

前半がニュートリノなどの物理の話で、後半はスーパーカミオカンデを支えるソフトウェア・ハードウェアの話。 ソフトウェアではまだ Fortran を使っているとのこと。科学計算なら珍しいことではないか。

物理の話だったが、すごくよく噛み砕いて話していただいたので非常にわかりやすかった。

Peddle the Pedal to the Metal

Peddle the Pedal to the Metal (おそらく発表に使われたのと同じ資料)

C での高速化の話。今回の builderscon ではわりかし低レイヤーの話だった。

高速化のテクニックで紹介された主なものは:

  • 文字列処理
  • malloc 関連
  • スレッド関連

など。最近 C は書いていないが、文字列処理周りは参考にできそう。

しかし C++ 嫌いという人は初めてみたな。

Oxygen Not Included: Making a Game That Inspires Science

資料は見つからず。

ゲーム「Oxygen Not Include」のデザインの話。 今回のセッションのなかでは一番変わっているかも。

今回の話を契機に積んでいたゲームに手を出してみたが、最初の部分から何をやったらいいかわからずに結局ゲームを積み直した。

その他

GMOさんがやっていたビルコン川柳で最優秀賞をいただいた。商品は Amazon ギフトカードで、ちょうど Kindle の IT 本セールがやっているのでこれに使わせてもらう予定。ありがとうございました!