Visiting Voyage Group
2014-11-18 /
今じんわりふんわりSICP読んでいます。
全然解けない問題と時々格闘しています。でも楽しいです。
SICPを読むきっかけとなった記事がこれ。
この記事を読んだ時は、まさかVoyage Groupの人と実際にお会いすることになるとはつゆ知らず。。。
ということで、Haskellもくもく会で知り合った@jewel_x12さんに ご紹介いただいてVoyage Groupのエンジニアの方々とお話してきました。
正確には他の会社の方にくっついていった感じでした。 全然アドテク知らない本気のド素人状態で。
はじめに
サービス実現のために必要だと判断された技術を貪欲の取り込んでいく。
事前に聞いていたVoyage Groupのサービス開発スタイルに対するイメージです。
プログラミング言語は適宜実現したいサービスにフィットするものを、エンジニアが考えて判断している。 そんな風に見えていました。
まずこの時点で結構新鮮でした。僕はせいぜい請負開発でレガシーコードをなだめながらマイグレする案件がほとんどだったので。
実際にそういった開発スタイルを文化に持っている会社のエンジニアはどんな人達なのか。それが気になったので、全く縁のなかった業界の方々に会ってみようとなりました。
実際
お会いして、お話した結果。
技術力がサービスを支える、という当たり前の事実が浸透しているのかな
と思いました。
技術力がピュアに、リニアにサービス開発へとつながっている感じ。 技術を持っているエンジニアの人達が大事にされているし、その人達こそサービスの価値の本質だ、っていっているように感じました。エンジニアの方々の明瞭なポリシーと発言から、それが出ていたかなと。
まあ、なので事前に受けていた印象とそんなにブレはなかった。
濃い勉強会
まずよく人が集まるなあ、と思います。 学習の動機付けを得やすい風土とかあるのかな。「先輩が勧めてた」とか「なんかめっちゃ熱く語られた」とか。
ちゃんと基礎のできたプログラマが育っていく土壌を作ろうとしているんだなあ。 見習いたい。ウチだと石を投げられる無視されるなどの暴行に遭うのではないか。
データを処理する効率との戦い
業界の特徴なのでしょうか、聞いてても耳を疑うような量のデータを加工・集計することが多いようです。
なので当然プログラマの方々はそれをいかに効率よく、予測できる時間で計算させるかに心血を注ぐことになります。
自然と計算機のアーキテクチャとか、プログラムの実行効率とかに習熟する必要が出てきます。
だから勉強会が必要なんですね。なっとく。
僕は計算効率がボトルネックになるような局面って、あまり出会ったことないです。今まではスケールアウトやスケールアップで物理的に改善してることがほとんどだったし。
今まではなかったけれど、これからはネットワーク分野でもこういう苦慮が必要になってくるのかも。 ルータにフローの統計とらせて、それをSDN系プロトコルで吸い上げて解析させる、みたいなの。 (あ、でも今もNetFlowとかあるしなあ。。。。)
Programmers love to overwrite memory
動いているカーネルにデバッガをアタッチして、命令を書き換えるという神々の遊び。
こういう話題で盛り上がる人達。なんでそこでテンション上がるの笑。
黒の章のビデオテープを見てしまった仙水忍のような悟りを感じた。
make is versatile
おまえらまじmakeしろな話。
コマンドのチェーンを構造化するのにちょうどいいDSLなのではないかと思いました。
他のビルドツールをラップしておくと、ビルドツール固有の規約とか覚えないで済むから、結局makeの支持率が上がっていって、与党になるということらしいです。
僕もHaskell書く時のcabalはいつもmakeでラップしてます。
もう少しちゃんとMakefile書けるようになってもいいかもしれない。
Distro
え、普通サーバはrhel系でしょ? なんでUbuntuをサーバに?
という話。
なんとなく勝手な妄想で世間はみんなUbuntu Serverに乗り換えていってるものだと思っていました。 そんなことなかったんですね。
えーだって、DockerのaufsってUbuntuでしか使われなくて、rhelだと別の実装にフォールバックしたきがするし。今もそうかはわからないけれど。
謎の単語たち
ERM : 未だに何を指していた単語なのかわからない。どうやらストレージの一種のような雰囲気だったが?
タグ : 僕の知ってるタグじゃない。トラヒックのフロー識別子だろうか。
ちょいちょい@jewel_x12さんに単語フォローしていただいた。すみません。
Vim派が多くて心が凪いだ
そう、意外とVim使っている人が多かったのです。 Atom派の方もいました。
でも、Windowsを開発用ホストマシンとして使っている人はほとんど皆無でした。 結局Ubuntuを仮想化して入れたり、最初からOS X使ったりしている感じ。
聞き逃した
- プロジェクトの生産性とか品質の計測ってどうやってるんだろう、というマネジメントサイド
- 大量のHTTPリクエストを捌くためにどんなインフラ設計にしているのか
ちなみにこれ書いてて電車乗り過ごしたよbullshit