僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

いつの間にか終わっていたYAPC。

毎年ほぼフル参加して楽しんでいてやっぷしーですが、今年は起業の準備とか色々していたら発表も全然見にいけませんでした。 見れたのは今後関連のある金曜日のIoT関連の発表だけ。 直近は土日の方が忙しい。。。

あと後輩がたくさんLTで発表していたみたいで、TL的に盛り上がっていたのが嬉しかったです。 優秀な人たちなので、これからもどんどん活躍してほしいなと思いました(・∀・)

発表自体は一部でしたがとても楽しませてもらいました。中でもcho45さんのテンションがとても高く、 またウェッブ系のエンジニアだったのにハードに手を出していてすごいなと思いました。

勉強法を質問したらウェッブに転がってるのを読むとか、教科書普通に読んでるとかですごいなと思いましたが、これから自分もこの分野で活躍できるように色々蓄えていきます(すでにもう進めてますが)。

来年のYAPCは余裕をつくって是非フル参加したいと思いました!

それでは以下発表のメモです。

perl meets real world

O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門

  • 発表紹介ページ
  • MQTT
    • 概要
      • 商業施設や過程内での機械サービスの自動化用途
      • MQってなに?
        • MQ?JQ?
        • AMQP
          • Advanced Message Queuing Protocol
          • RabbitMQが有名
        • XMPP
          • チャット用
          • 仕様が複雑で吐きそうってデメリット以外はMQTTとできることは一緒
      • M2M向け
      • Pub/Sub
        • Redis/STOMP
      • 省エネ
      • QoS,Willなどに対応
        • 対象障害性
          • Quality of Service
            • QoS0
              • 送信されたものをそのまま別の場所へ送信
            • QoS1
              • メッセージを保存する、ちゃんと送信したら削除する
              • 送信に失敗していたら保存したメッセージを再度送信
            • QoS2
          • Will
            • Leave Message=遺書
      • Webのグループチャットとかでも応用されている
        • Beluga(Facebookに買収された)
      • ライブラリ
        • nodeとかperlのMQTT実装がある
          • sango
    • サービスで言うとIFTTT的な感じ
      • 何かのデータの更新があったら、その情報を別のサービスに送信する
        • Instagramで星をつける→IFTTT→Evernoteに画像を保存
        • Hubサービスが各イベントをサブスクライブしており、別のサービスへディスパッチする
      • 具体例
        • ユーザーAが入出する→MQTTBroker→エアコンをつける
        • ハードウェア
    • URLベースの監視
      • finance/stock/ibm
      • finance/stock/ibm/A
      • finance/stock/ibm/B
      • finance/stock/ibm/*
    • 誤解
      • HTTPと比較される
        • HTTPに比べて省エネ?
          • いやいやただのPub/Subだから
        • でもHTTPでM2Mのネットワークを構築しようとしている例がある
          • REST
            • GETで温度取得とか
          • ちょっと無理がある
        • 実はHTTPベースのCoAPってのもある
  • BLE/iBeacon
    • BLE
      • 昔のはClassicって呼ぶ
        • 高速化を目指したけど他の技術との差別化ができなくなってきた
        • ペアリング必須
      • LE = low enagy
        • iBeaconみたいにペアリングなしで使う場合もある
        • central
          • クライアントとすることが多い
        • peripheral
          • サーバーとすることが多い
      • ネットワークへの参加方法
        • ペリフェラルがAdvertisting Packetを送信する
          • UUID、LocalNameとかの情報が入っている
        • CentralがUUIDを見て自分が望んでいるものかを判断
        • ポーリング後接続
      • Protcol
        • GATT
          • peripheralが提供する複数のservice、そのserviceの中にある複数のcaractaristic
      • MFi
        • SPP使える
    • iBeacon
      • 抽象化されたGET
        • お店の前に行った→お店情報を取得
      • Personalization
        • 個人のパラメータ(性別、年齢、、、)などからその人に適した情報を取得させたりできるはず
      • タッチがPOSTになるのでは?
        • ここはNFCを使おう!

ウェッブエンジニアのローレベルプログラミング

  • 言い伝えでは弊社のry
    • 久しぶりに見た…
  • 発表紹介ページ
  • ウェッブアプリについて
    • cho45さん安定の年下
    • C言語とかまあ書かんわな
    • 「ドライバないから書いた」
      • すごい人は下から上まで全部できる!
    • アセンブラレジスタ?なにそれおいしいの?
  • ARMアセンブリのススメ
  • ハードウェアプログラミング
    • ラズパイ
      • GPOIが重要
        • 1pin 16mAくらいと心細い
      • トランジスタスイッチングとかの知識が必要
      • I2C
        • 1つのパスを複数のデバイスで共有できる
        • SDA、SCL
      • SPI
    • Arduino
      • の話はしない
    • ラズパイもArduinoみたいにOSインストしないで使えるよ〜
    • mrubyもOSなしで動かせる
  • もっとローレベルへ
    • ホストコンピュータからの解放
    • AVR
      • ハーバードアーキテクチャ
      • ATmeag
        • 50円のやつも
      • Cで開発する
      • 1pin 40mAまで出せる
    • Eagleで回路も作成した
    • CPUを使い切るのではなく、CPUを使わない
    • V-USB