佐倉綾音さんの応援を支える技術
みなさんこんにちは〜、佐倉綾音です
17日目です。遅れてすみません
佐倉としたい大西イベントに行きました。とても良かったですね
あやねるがいのりんのCDを買って、それを舐めている写真をいのりんに送っているという話が良かったですね…
それでは、早速本題の佐倉綾音さんの応援を支える技術ということで普段、どのようにして佐倉綾音さんの活動を追っているのかを少し紹介したいと思います
まず、ラジオですね。
超A&Gのラジオの好きな時間を指定して録画できるので便利
これで録画したファイルをWebDAVなどでアクセスできるようにして見ています
次に、ニコニコ生放送ですが、
を使っています。これは入力した単語でタグ検索して自動でタイムシフト予約します。「佐倉綾音」を登録しておくと、公式放送や佐倉綾音さんが関わっているアニメなどにもタグが入ってるので便利
簡単な紹介ではありましたが、以上になります。
それでは〜、良き声優ライフを〜
#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
参加してきました。スライドの簡単なメモとツイートをピックアップして載せておきます
もうすぐ始まります #shibuyaex @ Increments Inc. https://t.co/6FCnQqIetr
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
Elixirご紹介(@naoya_ito さん)
WEB+DB PRESS Vol.88 の Elixirの記事は本当に事始めとして良いのでオススメ #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
Elixirでrubyに似てるのはdefとdoとendくらい #shibuyaex
— κeen (@blackenedgold) August 25, 2015
Rubyみたいに書ける関数型言語、がポイントではなく、Erlang VM上に乗っかってるというのがポイント。#shibuyaex
— yasaichi (@_yasaichi) August 25, 2015
関数呼び出しにパターンマッチが使えるすごい #shibuyaex
— もっぱら (@orih_y) August 25, 2015
Elixirの資料たくさんある http://t.co/7wXGxFdtmt #shibuyaex
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
ざっくり特徴
なぜElixir?
- ランタイムが強力
- 重要なのはErlang/OTPの上に乗っていること
関数型
- 動的型付けの関数型言語
- なし
- 静的型付け
- 純粋関数型
- 部分適用、カリー化
- オプション型(Maybe)
- ある
- リスト内包表記
- 遅延評価、無限リスト
- なし
参考
- Programming Elixir
- http://elixir-ja.sena-net.works/getting_started/1.html
- http://www.slideshare.net/joe_noh/presentations
- https://github.com/h4cc/awesome-elixir
次の10年の為にElixirをハックする(@mizchi さん)
「Elixirで一発当てたい」 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
「mizchi は仕事で Elixir を使いたいから Qiita 書いて naoya を焚きつけたら Web+DB PRESS に記事が書かれた」完全に術中に嵌った俺です。REST のときも同じく yohei さんの術中に嵌った罠 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
「react-phoenixを作ろうとした」
「あとは作るだけ」
#shibuyaex
— κeen (@blackenedgold) August 25, 2015
「高速で耐障害性のあるJSON APIが求められている」「いまさら型がない言語を学ぶなんて」せやな、感 #shibuyaex
— yasaichi (@_yasaichi) August 25, 2015
これな。5年前にブクマしてたw #shibuyaex / “node.js vs Erlang (ネタ) - amnesiac weekend programmer” http://t.co/kUBVLOmMEA
— Naoya Ito (@naoya_ito) August 25, 2015
Elixiriはどういう言語か
- 文法は気持ちの問題
- すぐにErlangを学ぶハメになる
Elixirへの不満
- いまさら型がない言語を学ぶこと
Elixirに解決して欲しい問題
- Let it crashしたい
- GCセンシティブ
本音
- つまらない言語で消耗したくない
- Elixirみたいな面白機能積んだ言語流行ってくれ
割り切り
Elixirを本番環境で使ってみた事例紹介(@ohrdev さん)
www.slideshare.net
おーはらさんによる 動画広告ネットワークをElixirで作った話 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
ドリコムさん、DAU 60万のアドのサーバーを Rails から Elixir に変えた、とな #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
APIサーバーにElixirを使って複雑なビジネスロジックはRailsバッチ(Sidekiqでenqueue) #shibuyaex
— κeen (@blackenedgold) August 25, 2015
railsエコシステムをElixirで再実装したものを利用してる #shibuyaex
— κeen (@blackenedgold) August 25, 2015
かなりエッジなものたくさん突っ込んでるイメージで怖い #shibuyaex
— Electron (@r7kamura) August 25, 2015
まさに人柱って感じだ #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
本番の運用事例本当にありがたい #shibuyaex
— taka (@ma2ge) August 25, 2015
#shibuyaex / “パーフェクト"Elixir情報収集"” http://t.co/KCeQpQ99HA
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
#shibuyaex / “Sapporo Beam” http://t.co/ZGKh5XAf7o
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
札幌beamの資料めっちゃ助かった #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
@ohrdev さん、すばらしい発表だ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
きてよかった感ハンパない #shibuyaex
— WAKASUGI 5T111111 (@5t111111) August 25, 2015
Twitter 盛り上がってるのに会場お通夜状態。これが IT 勉強会 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
サービス紹介
- DreeVee
採用の経緯
どう使っているか
- API部分に限定
- バックエンドはRedis、Dynamodb
- デプロイ
- exrm
- maru
- grapeのelixir実装
- その他
- exredis, poolboy, ex_aws, rave_elixir
困ったこと
困らなかったこと
感想
- Erlangを知らないと辛い
- ドキュメント少ない
- コミュニティが少ない
- sapporo.beamおすすめ
- Erlangのコミュニティ、エコシスエテムは偉大
- 時雨堂さんのドキュメントが参考になる
- Elixirならではの機能が便利
- パイプ演算子がないとやっていけない体に
- struct、protocol、遅延処理、etc
- マクロが強力
- debug、Perf関連はErlangのプロダクトが充実
- observer、eper、
- Elixirも徐々に充実
- Erlangをざっと把握しておくと良い
- すごいE本
- 関数型言語についての理解
Cowboyを使ってみる(@hayabusa333 さん)
お、週間 Elixir ライブラリの方だ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
ガチなのきた #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Cowboyとは
- モジュラー形式のHTTPサーバ
- ErlangVMで動くHTTPサーバとしては一強
- Plugを使えばもっと簡単
DBにseedにするライブラリつくった(@Joe-noh さん)
www.slideshare.net
Joe_noh さんに足向けて寝られない #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
おお、Phoenix の seed ・・・ まともなやり方わからなくてベタ書きしてたよ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
DBにseedを入れるライブラリ tane #shibuyaex
— κeen (@blackenedgold) August 25, 2015
うおー、最高っぽい #shibuyaex / “Joe-noh/tane · GitHub” http://t.co/jJ6BW6pxbG
— Naoya Ito (@naoya_ito) August 25, 2015
exseedがある
要望
- モデル名繰り返したくない
- 1行1属性縛りは避けたい
- 複数Repo使えたい
- Elixirらしく、パイプを使いたい
tane
Rails TutorialをPhoenixで移植してみた(@hagiyat さん)
Ecto、せっかく Repo と Model 分かれてるのに Model を ActiveRecord みたくドメインとサービスとデータアクセスごった煮にしちゃうのはどうかなと思って、なんか設計パターンがまだ見いだせてない #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Ecto の Model はデータモデルと割り切って、クエリ関数を記述するだけにしてドメインモデリングは別に層を作ったほうが良さそうだなというのが今のところの推測 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
「Rails Tutorialを移植したと言ったが、アレは嘘だ」 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
viewは俺がサーバサイドレンダリングできる最高なやつ作るんで待ってくれ #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Elixir - Phoenix をやるとなると、ライブラリが足りなくて、うががががががってなるので、ライブラリを作るチャンスでもあるっという #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
パイプ中毒者続出 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Phoenix のビュー周りがまだいまいちなの mizchi が react-phoenix 作ったらまるっと解決 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Elixirのライバル達を紹介する(@moccos さん)
まあ、MirahはRuby Like JavaだからActorではないか。 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
#shibuyaex AkkaとErlang繋ぐこんなのありましたね http://t.co/d6vbnMyoyp
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Beam VMはプロセス毎にGC持ってるだけでなくてIncremental GCなのでリアルタイム性は高いですね。 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
ライバルとの差ってプロダクトで使う時にとても重要なので、とてもありがたい発表だな #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
ponylangちょっとみたけど楽しそうだった #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
ponylang, ドキュメントがないownershipみたいな機構があって辛いそうです #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Fantasyスタックの話(@yodatomato さん)
FFスタック、 Phoenix のロガー作って tail of phoenix ってモジュール作りたいという気持ちがあった。誰かやって欲しい #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
「30代になると時間がない。死期が近い」#shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
brunch.io、昔使ってたんだけど、メンテナのpaulmillrが興味失ってるんでphoenixでみたときオゲーってなった。正直。 #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
おわり
つぶやくの忘れるくらいどの発表も良かった #shibuyaex
— もっぱら (@orih_y) August 25, 2015
Elixir の有益な情報いっぱい集まって来て良かった #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
想像したよりガチ勢だった #shibuyaex
— れい (@rei_m) August 25, 2015