koogawa blog

iOS、Android、foursquareに関する話題

#yapcasia YAPC::Asia Tokyo 2015 参加メモ

f:id:koogawa:20150821094921j:plain

前々から参加したいと思っていたYAPCですが、いよいよ今年が最後ということなので参加してきました。

yapcasia.org

2015 8/20(木)、8/21(金)、8/22(土) 東京ビッグサイト

以下は完全に自分向けのメモになります。

Web由来の組み込みエンジニアの半年間のすべて 〜WebとiOSとBLEとハードウェアデバイスのこと〜

先月、オフィスにおじゃまさせて頂いた photosynth の Kazuhiro Homma さんによる発表。

先日お会いした時も感じたけど、とても活き活きとしていて、仕事を本当に楽しんでいる感じだった。

Web由来の組み込みエンジニアの半年間のすべて 〜WebとiOSとBLEとハードウェアデバイスのこと〜

  • Akerun
    • 世界初の後付け式スマートロック
    • 専用のアプリとBluetoothで連携し、鍵を開けることができる
    • 恋人や家族などと鍵の共有も可能
  • Akerunが生まれた流れ
    • イデアは飲み会で生まれた
    • この世で一番HackされてないものをHackしたいと思った
    • 日経新聞にも取材された
    • 当時25歳から27歳のメンバーが集って週末に開発された
    • IoT、BLE、クラウドファンディングという時代背景にもあっていた
  • 開発の流れ
    • 原理試作
    • 量産試作
    • 試験
    • 量産
  • 苦労したこと
    • webアプリだと思いついてから3日でリリースできるが、ハードウェアだとそういうわけにはいかず、少なくとも半年くらいかかる
    • 「あとはファームでカバー」Webで言う運用でカバー的な
  • 必要だったと思うこと
    • C/C++がゴリゴリ書ける
    • 物理的な考え方ができる(数式、xy、速度、時間、角度)
    • デジタルマルチメーターとオシロスコープと友だちになること
  • Arduinoで練習
    • プロトタイプ作るのに良い
    • Timerの知識、I2Cの知識が製品に引き継げる
  • IoTにおける追加で必要な知識
    • BLE (Bluetooth Low Energy)
    • BLEはBLESerialで練習した
    • セキュリティの知識(重要!)
  • セキュリティ
    • BLE自体のセキュリティは弱い(4.0当時)
    • 独自実装はせずに汎用的な技術で固める
    • AES256, HMAC, RSA
    • プロに設計レビューしてもらう
    • プロに脆弱性がないか検証してもらう
    • 2社から攻撃してもらって問題がないことを確認
  • 若手で集まってることもあり、基本スタンスはわからないことはすぐプロに相談する
    • アポは全部Facebookで取れる時代!すばらしい
  • 普通の会社員だったころと違ったこと
    • 起業していたこと
    • 競合の販売がせまっていること
    • 失敗したら死ぬ、という恐怖があった
  • まとめ
    • 週末の電子工作でも続けていることで成果につながるかも
    • Webエンジニアでも組み込みエンジニアになれる!
    • 起業はとても楽しい

TBD

Yukihiro "Matz" Matsumoto

かなり早めに会場に入ったので、近くの席をゲットできた。

f:id:koogawa:20150821130015j:plain

  • Rubyの反省点
    • Perlに影響を受けすぎた
      • たとえば $= とか。変数一つでプログラム全体の挙動を変えてしまう
    • Lispの影響を受けすぎた
      • 例えば Fixnum と Bignum
      • 今思えば Integer で両者を隠蔽すれば良かったかも
    • 次に言語を作るときには似たようなものの区別はなるべく減らし、使い分けを避けるほうがよさそう
  • Rubyを作り始めたのは1993年だが、今までにコンピュータのアーキテクチャは変化してきた
    • 言語として対応するのがなかなか難しい
    • 一番難しいのがmulti-core
  • 関数型言語
  • 同じことは他にもあって、ガベージコレクションJavaが採用することによって普通の人も使える技術となった
    • そういう昔から考えれていたことが振り子のようにゆり戻して再来することがある
    • Webの世界になると、手元にあるのはブラウザだけで、処理は結局中央データセンターに、という振り子が発生
  • エラーチェック
    • CやGoでは明示的なチェック
    • JavaRubyでは例外処理
    • SwiftやOCamlではOptional
  • Streem
    • エラーチェックをデフォルトで無視
    • イベントループが回り始めてからの例外は、無視するという動作
    • 例外を発生させるモードに切り換えることもできるようにしている
  • まとめ
    • 新言語の余地はいつもある
    • 環境の変化は新言語を生む
    • 言語デザインは楽しい
    • 一緒に遊ぼう!

メモ:プレゼン資料に Rabbit というツールを使われていた。「うさぎとかめ」を使った残り時間表示が非常にユニークだった。

Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN

オモロキ:Yusuke Wada

場を温めるのがすごく上手だった。さすが発表慣れしてらっしゃる。

f:id:koogawa:20150821151609j:plain

  • 2つのPodcastやってます
    • だんごゆっけの平和な話 - 月1ベース
    • wada.fm - 週一ベース
  • システム編
  • コンテンツ編
    • 誰が喋るのか?
      • レビュラーひとり+ゲスト
      • レギュラーふたり+ゲスト
      • ひとりがたり
    • ひとりがたりの憂鬱
      • とにかく噛む
      • 編集しないと決めたので撮り直し地獄
      • 焦ると早口になる
    • 解決策
      • コーナーを作る
      • ラーメンとかお便りコーナーとか
      • 台本作る
  • オーディオ編
    • 音はオカルト的になりやすい
    • こだわればこだわるほどお金がかかる
    • でも、聴いてもらう限り快適な音を届けたい
    • 静かな場所で録ろう
    • ノイズが乗りにくい場所で録る
      • エアコンは切る
      • こたつも切る
      • 良いケーブルを使う
    • マイク
      • ダイナミックマイク
        • 電源不要
        • ライブやカラオケで使われる
      • コンデンサマイク
        • 電源必要でナイーブ
        • レコーディングスタジオとかで使用される
      • スタジオとかに良くあるマイクの端子(3つピンがあるやつ)はXLR端子という
    • Podcast破産には気を付けましょう
  • Podcastの特徴
    • 2人だと会話がコンテンツになる
    • 1人だと工夫が必要だけどなんとかなる
    • 聴いてくれる人を感じると嬉しい

メモ:生「わだえふぇーむ」を聴けたのが良かった。

所感

  • Wi-Fiの安定感がすごい
  • 同時通訳がすごい
  • スタッフさんも親切だった
  • 電源取れる場所が見つけられなかった
    • 最後の方のセッションはバッテリーがギリギリだった