Developers Summit 2015 2日目 2015.02.20

Developers Summit 2015 2日目に参加。サイト セッションリスト・資料

参加セッション
  • 20-D-1 モバイル時代でも戦える - Webエンジニアの歩み方 パネルディスカッション
  • 20-C-2 14,000件/secの配信を実現したリクルートのモバイルアプリを支えるプッシュ通知基盤
  • 20-A-3 GitHub: Insights from Researching Growth
  • 20-E-4 ここまで来た!Google Cloud Platform の真価と進化 福田 潔〔グーグル〕
  • 20-A-5 「じつは私、情シスでした。」- 業務の変化を前提としたアジリティの高い情シスチームの2年間
  • 20-A-7 Agile TED

以下、感想。

20-D-1 モバイル時代でも戦える - Webエンジニアの歩み方 パネルディスカッション
  • Web対ネイティブではなくて、ブラウザ対ネイティブ、というのは確かにそうだろうと思った。Web・情報を得るための入口が、デフォでブラウザだったのが、ネイティブ(アプリ)や、通知機能という選択肢が増えただけ。
  • 個人的には、Webがなくならない限りWebエンジニアそのものは生きていくとは思うけれど、提供の仕方は違っていくのだろうとは思う。
20-C-2 14,000件/secの配信を実現したリクルートのモバイルアプリを支えるプッシュ通知基盤
  • @ITの記事
  • プッシュ通知を作ったことはなかったが、内容や、はまったポイントなど、あぁなるほどと思うところが多かった。基盤側の不備と思ったら、実はアプリのバグで、というのは、共感しきり。ただ、そこからアプリごとに影響を与えないように、あるべき姿を目指して整備したところがいい。外部APIでなく、自社向けに各アプリチームの要望に迅速対応しようとする姿勢が、すばらしい。
  • 「リリースのあとの長い運用を考え、リスクを見立てて向き合うことで、チームが強くなる。エンジニアは新技術に挑戦すべき。」というまとめ。一技術者、開発者としては、耳が痛いところもあるが、刺激になる。
20-A-5 「じつは私、情シスでした。」- 業務の変化を前提としたアジリティの高い情シスチームの2年間
  • 楽天の佐藤さん、川口さんによるセッション。
  • 川口さんの資料
  • 「組織情報の活用のためのハブになるのが、情シス。」ある程度の組織になると、この立場の人がいないと非効率なことで悩まされたりするから、本当に感謝したい。意見があるときは、建設的な意見となるように気をつけよう。
  • 川口さんのパワフルな発表は、実感駆動の話。「動くソフトウェアでユーザを本気(マジ)にさせて、あきらめの川を渡る前に、意見を出してもらう。」ユーザとの相互作用の大切さが伝わってくる話。こちらから向かっていく姿勢が大事。
20-A-7 Agile TED
  • 5名の方による熱いセッションだった。本物のTEDではないにしても、ほんとみなさん話し方も内容もすばらしくて伝わってくる。

Developers Summit 2015 1日目 2015.02.19

Developers Summit 2015 1日目に参加。サイト セッションリスト・資料

参加セッション
  • 19-A-1 Growth!エンジニアとサービスと組織が成長するために 川上 量生〔ドワンゴ〕他
  • 19-C-3 ゲンバのSwift 安達 勇一〔クラスメソッド
  • 19-D-4 LINEアプリ内で提供するWebアプリ開発手法 清水 大輔〔LINE〕/手島 拓也〔LINE〕
  • 19-C-5 OpenID ConnectとAndroidアプリのログインサイクル 倉林 雅〔ヤフー〕
  • 19-C-6 Android 5.0 と Android Wear で広がる最新アプリ開発技法 松内 良介〔グーグル〕
  • 19-B-7 2020年のアーキテクチャ

以下、感想。

19-A-1 Growth!エンジニアとサービスと組織が成長するために
  • 記事
  • ドワンゴ川上さんは、潜在的にそう思っていても、言葉にしていなかったことを言ってくれたと思った。(他の方も言ってるかもしれないけど)
  • 「コンピュータの動作原理を知らないエンジニアが増えている」は、私も数年前から危機感がある。正直、どんどんこの傾向は加速しているのを実感している。可能な限りコンピュータの歴史や実物の動作は紹介するようにしているが、そもそも知らなくてもある程度のものができてしまうし、最近はミドル側で吸収してしまっている範囲も多いから、どうしてもブラックボックスのように感じてしまうのだろう。
  • 自分で考え、一人で技術的な限界に挑戦していけるような人たちだけが、生き残っていけるのではないか。今はたまたま、人手不足でそれほど顕在化していないだけで、既に始まっていると思う。
19-C-3 ゲンバのSwift 安達 勇一〔クラスメソッド
  • 資料
  • iOS開発関係のブログが充実しているクラスメソッドの方の発表ということで、期待していたが、たしかに現場の知識で、なるほどというものが多かった。
  • 内容は、UIKitのSelector、TestでのMock、iOS7でのSwift OSS、Moduleの穴、そして、後方互換性について。
  • Chris Lattnerの哲学を紹介するなど、Swiftの言語としての方向性もよくわかる内容で、非常に参考になった。「過去の決断を躊躇せず再考」
19-C-5 OpenID ConnectとAndroidアプリのログインサイクル 倉林 雅〔ヤフー〕
  • ID管理初心者にも、わかりやすい内容。トークンとCookieの有効/無効の話は、粛々と理解。
  • Androidというところがひっかかっていたが、それは、WebをアプリのWebViewで開くか、ブラウザを開くか、そして、iOSとの審査の違いにあった。ID管理の話から、まさかここに議論が来るとは。正直どちらがよいかあまり検討したことがなかったので、これはなるほどと思った。WebViewでやりとりをすると、利用者にはURLが見えず、暗号化されているかもわからない。Androidでは、WebViewではなく、ブラウザを開く形を推奨。(iOSだとUXを理由に、App Storeの審査でリジェクトされることもある。)
19-C-6 Android 5.0 と Android Wear で広がる最新アプリ開発技法 松内 良介〔グーグル〕
  • 及川さんの話を聞いた時も思ったが、Webやアプリを、よい物にしていきたい、底上げしたいという気持ちを感じるセッション。
  • 各プラットフォームに、それぞれ最適なものを作るべきで、AndroidならばAndroid標準を利用することでそれが可能になるという話。ネイティブで開発している一開発者としては、おーやったろうじゃんと思う反面、ビジネス的にそれだけ価値を出して、効果があるところまで持っていくプレッシャーも感じる。自社サービス以外では、必ずしもそこまでの効果がない場合もあるだろうから、見極めは必要。
19-B-7 2020年のアーキテクチャ
  • 半分以上の時間がパネラーの自己紹介で終わったところで、このセッションタイトルは釣りだったのにどうして気づかなかったのかと考えた。そもそも2020年のアーキテクチャを誰もはっきり言い当てられるわけはないのだ。それを期待するほうが無理というもの。
  • ただ、2020年になっても「おそらく解決されないもの」については、結構あぁそうそうという内容が多かった。IoTのネックになるのは、バッテリーや通信。企業システムの発展を拒むのは、利用・運用する側のマインドセット。パネラーはマインドセットが次の世代にむけて変わっている人の意見で、2020年になっても変われない人は変われない、というのは、おそらくその通りだろう。
  • 若者に向けて、未来に向けてワクワクする気持ちを持ってほしい!という鈴木さんの意見は、ある意味共感できるところがある。IT業界が新3K的な見方をされたりするのは、本意ではないし、本来的にはもっと楽しいと思っているので、そういう業界になるようにしたい。

2015 MVP Community Camp 名古屋会場 2015.01.31

MicrosoftのMVPが集まるMVP Community Campに参加。セッションリスト・資料

参加セッション
  • Visual Studio 2015: Pex はユニットテストの福音となるか!?(biacさん(わんくま同盟))
  • 競技プログラミング入門(栗原尚弘さん(MSP Fellow))
  • 課題を解決するための MS(加藤哲司さん(MiCoCi))
  • IoT の始め方(青木宣明さん(まどべんよっかいち))
  • タイトル未定(@jz5(プログラミング生放送))
感想
  • 仕事でMicrosoftツールを多数利用しているため、最新動向を知るきっかけにしようと参加。
  • スマートユニットテスト(Pex)が自動的にテストを生成して実行する様子は、なぜかちょっとした陶酔感すらあった。おそらく、自分も含めて、これまでそういう仕事がエンタープライズの場では多く存在し経験してきたからだろう。あとからテストを生成するというツールがこのタイミングでVisual Studioに搭載されるということは、「すでに動いているテストのないレガシーコード」に対するテスト生成の需要が、高まっていることが想像される。
  • 「開発するときにツールを惜しまない」は確かにそうありたい。ただし、リーズナブルな価格に限る。Professionalでも十分開発はできるが、Visual Studioで本当に効率化のために利用したいと私が思った機能は、ほとんどがPremiumかUltimateのライセンスでないと利用できず、全員がそのライセンスで開発するほどの価値を生み出すことができる会社はほんの一握りだろう。

以下、印象に残ったポイント。

Visual Studio 2015: Pex はユニットテストの福音となるか!?
競技プログラミング入門
  • 競技プログラミングの紹介
  • なぜやるか?:プログラミングを勉強することに対するモチベーションになる。
  • 参考書籍:「プログラミングコンテストチャレンジブック」(通称蟻本)アルゴリズムを考える上で参考になる。
課題を解決するための MS
  • MSの昨年の動向:オープン&クロスプラットフォーム
    • Azure/Office 365
    • iOS/Android向けOfficeのリリース
    • .NETのオープン化(特にサーバー系)
    • VimにIntelliSenseの機能を追加できるOmniSharp
    • .NET Community
  • Windows 10は、MSのサービスを使うための入り口という意識が強いのでは。
  • 音声認識系のデモ(ノーマライゼーション関連)
  • 開発するときには、ツールを惜しまない。ツールを否定しない。
    • 求められることに対して、作りこみをするのではなく、ツールでできることはツールでやる。
    • 開いた時間でより多くの人に届けることを考えて。
IoT の始め方
  • .NET Micro FW対応マイコンとAzureを使ったIoTの始め方
  • デモ

HTML5 Conference 2015.01.25

HTML5 Conference 2015に参加しました。

参加セッション
  • 基調講演(慶応大学 村井純Google 及川卓也、html5j 吉川徹)
  • どうなる次の Internet Explorer?、え、あれがこうなる? ほんとに?! 中の人だから言える「ここだけのハナシ」(日本マイクロソフト株式会社 物江 修)
  • Web: RebootW3C/Keio Michael[tm] Smith)
  • HTTP/2の現状とこれから(株式会社インターネットイニシアティブ 大津繁樹)
  • Open Web Platform推進に、日本の Web Developerはどう関わっていくか(4名によるディスカッション)
  • 転ばぬ先のエンタープライズWeb開発プランニング(株式会社クレスコ 小川充、グロースエクスパートナーズ株式会社 酒巻瑞穂)
感想
  • 最も印象に残ったことは、Developerだけでなく、ブラウザベンダー、html5の規約を作る側など、さまざまな立場がWebに関わり、Webが進化しているのだということ。どちらかというと、規約の中で、Developerは頑張るしかないと思っていたのが、もっと意見を出して、良くしていけばよいのだということに気づかせてくれる内容だった。
  • マイクロソフトWindows 10に搭載されるIEに関するセッションは、ブログ・Twitterでの情報公開NG。心にしまっておくが、エンタープライズ向けに関心は高い印象。
  • 英語セッションで概要翻訳をTweetする形式は、新鮮だった。比較的英語はクリアで聞き取りやすかったが、英語の理解が一部できなかったところは、助けられた。技術者たるもの、英語はある程度必須なコミュニケーションツールなんだと痛感。
  • 現在のHTTP/1.1は、よくこの技術の中でやっているなという印象をもっているので、HTTP/2の普及推進が待たれる。

以下、印象に残ったポイント。

基調講演
  • Web and Things(慶応大学 村井純
    • IoTの普及:物がHTTP通信できるようになり、Things on the Internetへ。
    • 3Dプリンターなどが普及し、インターネットを通じて物をだれでも作れるようになる。("Download This Things!")物流、税金、税関の考え方も変わる。
    • 日本では、イノベーションにデータを活用していると回答した企業経営者の割合が低く、IT技術者はサービス企業に所属している割合が高い。
  • Web技術の今後の展望(Google 及川卓也
    • 検索ワードでも、IoTは一気に大きくなってきている。要因は各種あるが、ノンプログラミングで実装ができるようになったり、コンポーネント化により他のサービスに簡単に移動できるようになったりというのもあり。
    • HTML5勧告された時にはすでに実装・利用が進んでいてインパクトなし
    • IoT時代は、物が直接クラウドと連携する時代。機器やサービスの組み合わせが多彩になる一方、認証・レイテンシなど、複雑な課題もあるが、汎用のソフトウェア開発技術も組み合わさることで実装が進んでいく。
    • 既存のWebサイト・アプリケーションがよくならないとよいWebにはならない。底上げは必要。
Web: Reboot
  • Extensible Webのアイデアは、ボトムアップ型アプローチ。Webの原則に戻ること。
  • マニフェストが最近翻訳された。Report Cardもあり、学ぶならこちらがおすすめ。http://extensiblewebreportcard.org/
  • Webはコンテンツを保持するユニバーサルな場所。中央集権化されず、つながることが前提。
  • W3Cについて、フィードバックを返してほしい。受け身ではダメ。
HTTP/2の現状とこれから
  • HTTP/1.1の問題点(Head of Line Blocking等)の解消を目指したのがHTTP/2。まもなく勧告になると思われる。
Open Web Platform推進に、日本の Web Developerはどう関わっていくか
  • ダニエル、及川さん、矢倉さん、小松さんそれぞれの立場でどうWebを推進していくかディスカッション
  • これまでは標準が決まって実装してもそのままでは利用に堪えず、ライブラリ経由で利用ということもあった。
転ばぬ先のエンタープライズWeb開発プランニング
  • backbone.jsからangular.jsへ
  • パフォーマンスは定期的に取得して監視することが必要。
  • 既存のWeb開発と比べてコスト・リスクが高くなりがち。エンタープライズWeb開発の未来はこれから

Jenkins ユーザ・カンファレンス 2015 東京 2015.01.11

Jenkinsカンファレンスに参加。セッションリスト・資料

参加セッション
  • 基調講演:Jenkinsプロジェクトの現状(@kohsukekawa)
  • はてなにおける継続的デプロイメントの現状とDockerの導入(@nobuoka)
  • クックパッドにおけるJenkinsの活用(高井さん)
  • Infrastructure as a CodeにおけるJenkinsの役割(本田さん、藤原さん)
感想
  • 参加申込者数で700人を超える大きなイベント。実際集まってみると、Jenkins(や類似ツール)をどのように使ったら、それぞれの次のところにいけるかを考えている方がたくさんいることを意識。
  • 自分があまり課題と思っていなかったポイントで、他の方が課題だと思っているポイントが参考になった。課題として顕在化するかしないかは状況依存だと思うが、状況が変わっても役に立ちそう。(特にFail時にいかに通知して対応するかという話が、ここまで出てくるとは思っていなかった。)
  • JenkinsのWorkflow Pluginは、可用性の向上という意味ではとても魅力的だが、使い方を間違えないように、定義はシンプルにいきたい。
  • なぜCI,CDかというところは、今後この世界に入ってくる方にも、常に意識したい(してもらいたい)。

以下、印象に残ったポイント。

基調講演:Jenkinsプロジェクトの現状とワークフロー
  • 参加者アンケート結果
    • Jenkinsを使っていないか、半年未満という方が半数近く
  • Jenkinsプロジェクトの現状
    • DotCi、Workflow Pluginの紹介・デモ
    • Workflow Pluginでは、再起動をまたぐ長時間ビルド、中断・確認などの対話、一過性エラーに対応するチェックポイントからの処理再開、処理の再利用などサポート。
はてなにおける継続的デプロイメントの現状とDockerの導入
  • Jenkins事例
    • サービスごとにJenkinsを用意:テストの安定性、バージョンアップしやすい
    • ChefでJenkinsの環境を構築:本番と同じ環境を作る
    • Jenkinsの設定を複雑にしない:特定の人しかできない状況を作らない
    • 失敗時の通知はSlack、GitHub Enterpriseのみなので強化したい
  • Dockerコンテナ事例
    • 同じ環境を複数アプリケーションが使用するので面倒だったり問題が起こったりするのを、Dockerで解決を試みる。たとえば、ブランチ名とポート番号の対応付けが面倒なのをDocker APIで解決する
クックパッドにおけるJenkinsの活用
  • CIで守るべき価値:意図しない変更を予防できる、再現可能で自動化されている、リソースや情報を集約できる
    • 偽陽性があると、エラーを気にしなくなったり、本当のエラーを見逃してしまうので、可能な限り取り除く
    • 不具合を放置させないために、ターンアラウンドを短くし、失敗時のみメンションするなどの工夫をする
    • なぜCIするのか:継続的デリバリー、ニンベンのつく自働化
  • 結論:ふつうにしている
    • やるべきことをやる、常にそうあるようにする、の2つの意味で。