佐倉綾音さんの応援を支える技術

みなさんこんにちは〜、佐倉綾音です

www.adventar.org

17日目です。遅れてすみません

佐倉としたい大西イベントに行きました。とても良かったですね

#toshitai

@tsuwatchが投稿した写真 -


あやねるがいのりんのCDを買って、それを舐めている写真をいのりんに送っているという話が良かったですね…

それでは、早速本題の佐倉綾音さんの応援を支える技術ということで普段、どのようにして佐倉綾音さんの活動を追っているのかを少し紹介したいと思います

まず、ラジオですね。

github.com

超A&Gのラジオの好きな時間を指定して録画できるので便利

これで録画したファイルをWebDAVなどでアクセスできるようにして見ています

次に、ニコニコ生放送ですが、

github.com

を使っています。これは入力した単語でタグ検索して自動でタイムシフト予約します。「佐倉綾音」を登録しておくと、公式放送や佐倉綾音さんが関わっているアニメなどにもタグが入ってるので便利

簡単な紹介ではありましたが、以上になります。

それでは〜、良き声優ライフを〜

#ISUCON 5が面白かった話

チーム友利奈緒です。

ISUCON5に参加してきました。

事前準備

急に参加することが決定したのでGCPのセットアップ程度で、事前の予習などはウェブ上の記事程度になってしまった。 これが結構痛くて、今となってはISUCON慣れしておく必要があったと後悔しています。

当日

言語はRubyで、自分の担当は主にアプリケーションコードの修正の担当をしていました。

午前まずやったこととしては、rack-lineprofで行数レベルで処理時間が長くかかっている箇所を特定し、チームで共有することをしました。 あとはチームで全体の構成を見たり、テーブル構成を見たりして、問題の洗い出しをしていました。

午後はテーブルにインデックスを張ったり、UnicornやNginxの設定見直しやN+1クエリを潰したり、一部Redis化したりしていきました。お昼すぎくらいまではTOP20に入るくらいのスコアは出ていました。しかし夕方に差し掛かるにつれて、だんだん煮詰まってきました。

ここででたまらずCharlotteを流し始める。

やっぱり友利奈緒なんだよな〜と言いつつfootprintsテーブルをRedis化し始めるも時間が足りず、結局スコアは伸びませんでした。

感想

反省としては行き当たりばったりの修正が多かった気がするので、少し我慢して着手し始める前におおまかにやることを洗い出す。そしてだいたいの方針を固めて、もう少し共有しながら進めていったほうが良かったのではないかと思います。 あとは、ベンチマークが走っている時のログや、topなどを見ずに夢中でコードを書いていたので、その辺りも見ていくべきでした。

とにかく面白かったし、何より悔しかったです。 問題が出され、解答してスコアが出る。これだけでもすごく面白かったですし、自分の実力がスコアとして、対外的にわかるというのはとても刺激になりました。

また今までは、参加せずに様子を眺めているだけだったのですが、実際に参加してみると想像以上に良かったです。 8時間チームで集中して協力して、問題を解く。終了後に反省会、感想戦をする。他の参加者の知見を得るというのが本当に勉強になるし、面白かったです。

技術的には、実装のアイデアとスピードがまだまだでした。もっと貢献できるように頑張ります。 一年間修行して、また再び挑みたい。

Shibuya.ex #1 の様子

Shibuya.ex #1 - Shibuya.ex | Doorkeeper

参加してきました。スライドの簡単なメモとツイートをピックアップして載せておきます

Elixirご紹介(@naoya_ito さん)

speakerdeck.com

ざっくり特徴

  • ErlangVMの上で動く
  • 最近の言語的なトレンドがある
  • 軽量プロセス、アクターによる並列処理
  • Rubyっぽくない
    • 似てるのはdefとdoぐらい
      • ユーザフレンドリー

なぜElixir?

  • ランタイムが強力
  • 重要なのはErlang/OTPの上に乗っていること

関数型

  • 動的型付けの関数型言語
    • なし
      • 静的型付け
      • 純粋関数型
      • 部分適用、カリー化
      • オプション型(Maybe)
    • ある
      • リスト内包表記
      • 遅延評価、無限リスト

参考

次の10年の為にElixirをハックする(@mizchi さん)

speakerdeck.com

Elixiriはどういう言語か

  • 文法は気持ちの問題
  • すぐにErlangを学ぶハメになる

Elixirへの不満

  • いまさら型がない言語を学ぶこと

Elixirに解決して欲しい問題

  • Let it crashしたい
  • GCセンシティブ

本音

  • つまらない言語で消耗したくない
  • Elixirみたいな面白機能積んだ言語流行ってくれ

割り切り

  • Erlangは結局Network DSL言語として割り切ったほうが良い(by @voluntas)
  • CPUヘヴィが速くなるわけではない

Elixirを本番環境で使ってみた事例紹介(@ohrdev さん)

www.slideshare.net

サービス紹介

  • DreeVee

採用の経緯

  • 旧システムはRails
  • やりたいこと
    • 大量のリクストを安全
    • サーバコスト
    • スケール
    • サービス止まらないように
  • 候補

どう使っているか

  • API部分に限定
  • バックエンドはRedis、Dynamodb
  • デプロイ
    • exrm
  • maru
    • grapeのelixir実装
  • その他
    • exredis, poolboy, ex_aws, rave_elixir

困ったこと

困らなかったこと

感想

  • Erlangを知らないと辛い
    • エラーログはErlangベース
    • ErlangRubyで書いている感じ
    • ElixirのライブラリはまだErlangのラッパーがほとんど
  • ドキュメント少ない
  • コミュニティが少ない
    • sapporo.beamおすすめ
  • Erlangのコミュニティ、エコシスエテムは偉大
    • 時雨堂さんのドキュメントが参考になる
  • Elixirならではの機能が便利
    • パイプ演算子がないとやっていけない体に
    • struct、protocol、遅延処理、etc
    • マクロが強力
  • debug、Perf関連はErlangのプロダクトが充実
    • observer、eper、
    • Elixirも徐々に充実
  • Erlangをざっと把握しておくと良い

Cowboyを使ってみる(@hayabusa333 さん)

www.slideshare.net

Cowboyとは

  • モジュラー形式のHTTPサーバ
  • ErlangVMで動くHTTPサーバとしては一強
  • Plugを使えばもっと簡単

DBにseedにするライブラリつくった(@Joe-noh さん)

www.slideshare.net

exseedがある

要望

  • モデル名繰り返したくない
  • 1行1属性縛りは避けたい
  • 複数Repo使えたい
  • Elixirらしく、パイプを使いたい

    tane

Rails TutorialをPhoenixで移植してみた(@hagiyat さん)

speakerdeck.com

Elixirのライバル達を紹介する(@moccos さん)

speakerdeck.com

Fantasyスタックの話(@yodatomato さん)

おわり