(2015/08/24:世界展開する大規模ウェブサービスのデプロイを支える技術のスライドが公開されたので追加しました。)
初参加です。 毎年行こう行こうと思って忘れていたのですが、今年はチケット発売にすぐ気付けたので即座に購入しました。
噂によるとブログに書くまでがYAPCらしいので、それに従ってとりあえず1日目の簡単な感想をぼちぼち書きます。
メリークリスマス!
Perlのパパ、ラリー・ウォールの基調講演。
個人的には、「Perl6はクリスマスに出す(って言ったらしい)」→「いつのクリスマスとは言ってないぞ」→「βを誕生日に、正式版を今年のクリスマスに出したい」→「バスに轢かれなければ・・・」の流れがツボでした。
指輪物語とかホビットの冒険になぞらえていたり、スタートレックとか42の話題も出ていたので、この辺の話が理解できていればもっと楽しめたような気がします。
J.R.R.トールキンはホビットの冒険の後に15年かけて指輪物語を書いたそうですが、Perl6もPerl5(2000年)から15年かけて作った、という事でなぞらえていたようです。
出ていた話では、「Perl6のコミュニティには(指輪物語でいうと)エルフやトロールのようにいろんな種族がいて、みんなそれぞれ意見は違うけど、それでも仲良く出来た方が良い」「お互いを好きでいてください」というのが印象的でした。
ちなみに、同時通訳の人が最高で非常に聞きやすかったです。
世界展開する大規模ウェブサービスのデプロイを支える技術
Miiverseのデプロイやバージョン管理の話です。お世話になっております。
通して聞いてみると、かなり泥臭い運用をしている(しようとしている)んだな〜という感じでした。
リポジトリ同期の新システムというのでどんなもんかと思ったら、Gitで行うコマンドを自動化している感じだったり、デプロイは(現状)Capistrano2+Gitだったり、DB反映やコマンドの実行は手作業・・・という運用のようです。
Gitコマンドの自動化は「gitコマンドしか実行していないので安全」という事なので、確かに変な事するよりはコマンドに全部任せた方が動作は保証されるよな・・・と思いました。(何かあったらキャッシュ消してやり直すのあたりもかなり泥臭かったですw)
デプロイは、Cap2+GitからConsul+Stretcher移行を検証しているようでした。
(CodeDeployが無かった時期に作られたそうな)
これにより、Gitの負荷を考えなくてよくなったり並列実行できたりリポジトリに成果物が無いので肥大化が防げたり・・・といいことづくしらしいです。
台数が多くなればなるほど有利らしく、100台を対象にしたデプロイでかなりの差が出ていました。
大体デプロイ対象が30台を越えるとそろそろgit pullの負荷がボトルネックになってくるので、そうなればConsul+Stretcherを検討しても良いのではないかとの事でした。
TBD
今度はRubyのパパ、Matzのセッション。 直前までタイトルがTBDだったので本当に何を話すのやらと思ったら、(色々と小ネタはありましたが)Rubyの反省と新言語Streemの話でした。
RubyはPerlの置き換えを目指して最初は作り始めたが、その結果Perlの影響があまりにも大きくなりすぎた、との事。
Lispの影響も受けているようで、その中で似たようなものなのに動きが異なってくるのでややこしいものがあり、「区別せず、全部同じで良かったのではないか」とも。
Streemは200行の動かないプロトタイプを公開したらバズってしまい、「動かないものは無視される」はずのOSS界の常識を覆すMatz伝説(自分で言ってた)となったようです。 仕様もシンプルでデータ構造もシンプル(シンプルすぎるみたいなのも見かけましたが)なので、ちょっとした処理をサクサクっと作ってしまうのに良いものになりそうです。 小規模データ解析やシンプルなWebサービスを作れるため、応用範囲が広いのではないかと仰っていました。かなり期待しています。
「新言語の余地はいつでもある」「環境の変化は新言語を生む」という最後の方の言葉が印象的でした。
Perlで学ぼう!文系プログラマのための、知識ゼロからのデータ構造と計算量
恥ずかしながらデータ構造やら計算量についてあまり理解できてない部分があったので、そこを補うために。
と、思ったのですが、入った時点で超満員・・・何とか後ろに陣取ったものの、スライドが見えず中盤からは聞く事に徹していました><
スライドにほぼ全てが凝縮されているので、これ見れば大体は理解できるのではないかと思いますが・・・やっぱり解説とセットで聞きたかった・・・。
Cのポインタ回りは長年の謎でしたが、分かりやすい説明のおかげでかなり解消されました。
録画配信ありになってるので、それに期待しましょう。
Electron: Building desktop apps with web technologies
AtomやVisual Studio Codeで使われているElectronの話でした。どちらかというと概要や作り方簡単なデモが中心。
どんな感じでWeb技術が通常のプログラムのような振る舞いになっているのか気になっていたので、関係者の方直々のお話を聞けて良かったです。大まかな流れはざっくりと掴めました。
既存のnpmの遺産が活かせるので移植が楽だったり、ライブラリを駆使する事でデスクトップアプリ顔負けのものがすぐ作れるという所が長所のようです。
デモで使われていたアプリはこの2つでした。
- KittyDetectApp https://github.com/benogle/kitty-detect-app
- 画像から、猫の顔を検出するもの
- 2時間で作ったそうな
- CurveApp https://github.com/benogle/curve-app
今の所はテキストエディタ中心的なイメージですが、ロボットやらVideoGameEditorやら色んな物に使われているので、まだまだ活躍の場は広がりそうです。
esa.io - 趣味から育てたWebサービスで生きていく
esa.ioの作ったきっかけから育て方、その方針について。
個人的には今日のベストトークでした。「自分のやりたいことをやって、それで生活できて、それで回りの人を幸せに」したいです(\( ⁰⊖⁰)/)
。
ちなみに、きっかけが意外と単純で「試用期間切れたから作ろう」というものでした。
話の中で最初と最後に「いろいろ試すのが大事」と話されていたので、本当に大事そうです。
自分で何か作ろうとした場合に、「これ作ろう」→「もうあるやん・・・」という発想になって結局何もしないという場合がよくあるので、「あろうが無かろうがとりあえず作ってみた方が良いな」と思わせてくれる内容でした。
楽しさやモチベーションの維持の方法も色々ありましたが、「楽しさやモチベーションはあくまで生まれた結果なので、それを生み出す可能性のものをする」という所が共通している感じを受けました。
Bungfixタイムアタックや、フィードバック駆動開発とリリースノート駆動開発がかなり興味があります。
それにしても、「責任をもって真剣に開発する意思表示」をするために運営会社を作ってしかも副業で運営していたって相当な覚悟が無いと挑めないはずなので、かなりチャレンジャーだなとも思いました。
(そういえばステッカーくれるみたいな話をしてた気がするんですが、いただくのをすっかり忘れてました。)
懇親会
タダでご飯食べられるなーと思って乗り込んだんですけど、良く考えたら「パーティーメンバーがいません。」になりそうだなーとか思ったり思わなかったり。
結果的にそんな事は無かったので良かったです。ご飯もデザートもおいしかった。
ステッカー
スポンサー様のありがたいステッカーを色々頂いたので、ぺたぺたと貼り付けました。
(Azure以外は今日頂いたものです)
自分を売る。
ここまできたらもう少し貼りたい。
その他
- 無線LAN環境が最高
- 何か名前書くのがあったらしく、ネームプレートに何も入れてなかったのは凡ミス。懇親会になって名刺入れた
- お弁当もおいしかったです
- MBPの電源が死にそうだったので、どこかで確保したかった
- "採用目的"が頭から離れない
という事で
2日目もがんばるぞい!