読者です 読者をやめる 読者になる 読者になる

Ola Kae Tode Tai

すべてのエンジニアに、追い風を祈る。

PyCon JP 2016に行ってきた 2日目

Python PyCon

f:id:kironono:20160922104243p:plain

朝から結構な雨で、家を出た瞬間帰りたみマックス。高田馬場から歩いたけど副都心線西早稲田からにすればよかった…。

昨日に引き続き、メモ代わりに自分が聴講したトークを列挙しておきます。

1日目の記事はこちら。

ola.kironono.com

Keynote

pycon.jp


1_08 Opening〜Keynote

Python3.6b1の新しい機能と型ヒントのメリット、デメリットについて。 Python2からPython3への移行はPython2の資産がいっぱいある状況だとなかなか難しいよね。DropboxではPython2to3のために型ヒントを入れ始めたというお話。

Pythonでpyftpdlibを使ってFTPサーバーを作る際に使ったテクニックの紹介

pycon.jp


3_05 Pythonでpyftpdlibを使ってFTPサーバーを作る際に使ったテクニックの紹介

いきなりコードを書き始めちゃいがちだけど、小さなプログラムでも機能要件を明確にして始めたほうがいいよというお話。インターフェイスを先に明確にするのは重要だと思う。CLIのプログラムならusageとかを書いたREADMEを先に書き起こすのはいいかもしれない。

Deep Learning with Python & TensorFlow

pycon.jp


1_10 Deep Learning with Python & TensorFlow

Python を支える技術: モジュール・インポートシステム編

pycon.jp


2_08 Python を支える技術: モジュール・インポートシステム編

import文が中で何をやっているかを分解して解説するお話。名前空間パッケージがなぜ必要か。

インポートシステムは徐々に改善が加えられてるけど、大きな混乱を招かないように慎重に議論されている。Pythonの歴史はPEPに刻まれている。

メタプログラミングPython

pycon.jp


1_12 メタプログラミングPython

コードを記述するコード。メタプログラミングの手法を紹介するお話。ライブラリとかWebフレームワークで使われているテクニックが垣間見れた。

型ヒントについて考えよう!

pycon.jp


3_09 型ヒントについて考えよう!

Python3.5から導入されたType Hintingについてのお話。他の動的型付言語に導入されている型ヒントとの比較。Pythonの型ヒントはまだまだ普及していない。サードパーティライブラリのHinting (Typeshed) がまだ少ないので恩恵受けにくいけどこれから。

まとめ

今年も2日間参加しましたが、充実した時間を過ごすことができました。また来年も参加します!

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

PyCon JP 2016に行ってきた 1日目

Python PyCon

f:id:kironono:20160922104243p:plain

今年もPythonのカンファレンス、PyCon JPに参加してきました。

pycon.jp

個人的には転職してからPythonを触る機会はめっきり減ってしまったのですが、Pythonは好きな道具の一つなので最近の雰囲気をフォローするためという感じです。

会場は早稲田大学西早稲田キャンパス。アクセスが良いので去年の会場である東京国際交流館・プラザ平成よりいいかも。

f:id:kironono:20160922130708j:plain

メモ代わりに自分が聴講したトークを列挙しておきます。

Keynote

pycon.jp


1_01 Opening〜Keynote

キーノートはちょっと開始時間に間に合わなくて途中からでした&同時翻訳付きのセッションでしたが、翻訳機なかったのであまり英語聞き取れなかったです。

コミュニティの育成、多様性の話をしていたと思います。

Blockchain for Pythonistas

pycon.jp


5_01 Blockchain for Pythonistas

FinTech、xxTechについて。ブロックチェーンについての概要と、ビットコインPythonから扱うためのライブラリの紹介でした。 Python分は少なめ。

Mezzanine, the best CMS on Python

pycon.jp


4_02 Mezzanine, the best CMS on Python

MezzanineというDjangoベースのCMSの紹介。Djangoをベースにしているが、Mezzanineは独自に変なことしてなくて、いつものDjangoアプリケーションと同じようにインストール、セットアップ、カスタマイズができるよって感じでした。

CMSって何者?って議論もありますが、CMSライクなDjangoアプリケーションの実装の参考になりそう。

ニューラルネットワークフレームワークであるChainerで始める対話Botの作成

pycon.jp


4_03 ニューラルネットワークのフレームワークであるChainerで始める対話Botの作成

趣味でBot対話ボットを作成されているとのこと。見かけ、キャラクターに合わせた言葉のボットに必要な要素とか。

パッケージングを支える技術

pycon.jp


1_05 パッケージングを支える技術

毎度おなじみのパッケージングのお話。いままで定まってなかったパッケージングの仕様はある程度整理されて、誰でもパッケージ管理するソフトウェア作れるようになってきた。

まとめ

PyConは昔一緒に仕事したことがある人や普段なかなか会うことができない人と会うことができるいい機会ですね!

普段あまり会話しないんで、ちょっと疲れますが(笑

明日の2日目も参加してきます!

Effective Python ―Pythonプログラムを改良する59項目

Effective Python ―Pythonプログラムを改良する59項目

Chrome for iOSでフィジカルウェブを試してみる

iOS Web

フィジカルウェブ

f:id:kironono:20160902135832p:plain

モノとWebを繋ぐための技術で、EddystoneのEddystone-URLを用いてビーコンデバイスからURLを配信して、Webに誘導するための仕組みです。

github.com

専用のアプリをインストールしたり、起動したりせずに、現実のモノに近づくだけで情報のやりとりができることを目標にしているプロジェクトです。

現段階では、iOSChrome 44以降とAndroidChrome 49以降がフィジカルウェブをサポートしています。

Eddystoneとは

f:id:kironono:20160902140343j:plain Beacons  |  Google Developers

EddystoneはGoogleが発表したBLE(Bluetooth Low Energy)を利用したビーコン規格です。

AppleのiBeaconと同様にBLEのアドバタイジングパケットの形式を取り決めたものです。 iBeaconは正式にはiOSのみ対象としてるのに対して、Eddystoneはオープンな規格なので様々なプラットフォームで採用することができます。

Eddystoneのソースコードはこちらで公開されています。

github.com

Eddystoneには大きく分けて3つの送出フレームのパターンが決められています。

  • Eddystone-UID … 16byteのユニークなIDを送出する
  • Eddystone-URL … 短縮URLを送出する
  • Eddystone-TLM … デバイスの温度、バッテリー残量、起動時間などのテレメトリーを送出する

Node.jsとiOSChromeでEddystone-URLを試す

今回はBluetooth 4.0に対応したMacからEddystone-URLのアドバタイジングパケットを送信し、iPhoneで受け取ってみます。

iPhone側の準備

iPhoneChromeの最新版をインストールします。

画面の上から下にスワイプして通知センターを表示して、画面下部にある編集をタップ。

f:id:kironono:20160902230926p:plain

TodayウィジェットChromeを追加します。

f:id:kironono:20160902230817p:plain

Bluetoothを有効にして、フィジカルウェブを有効にします。

f:id:kironono:20160902231016p:plain

iPhone側の準備はこれでOKです。

Node.js

nodeはすでに入ってる前提で以下のnpmパッケージを利用します。

npm install eddystone-beacon

eddystone_url.js として以下のように作成しました。

var EddystoneBeacon = require('eddystone-beacon');

var url ='https://goo.gl/eGuo64';

EddystoneBeacon.advertiseUrl(url);

送信したいURLを短縮URLにして、 url に格納しています。

短縮URLにする理由は、 http(s):// の後に続く文字は最大17文字しか利用できないためです。

Google Shortenerを使って短縮URLを生成します。

また、短縮URLの元のURL(最終的に遷移させたいURL)は https である必要があります。

MacBluetoothを有効にして eddystone_url.js を実行すると、アドバタイジングパケットが送信されます。

node eddystone_url.js

iPhone側で受信する

iPhoneのロック画面を解除して、通知センターを開くと周囲のフィジカルウェブオブジェクトが検索され、見つかると以下のようにフィジカルウェブのアイコンとURLのページタイトルが表示されます。

f:id:kironono:20160902231058p:plain

アイテムをタップすると、ブラウザが起動して、URLにアクセスすることができます。

まとめ

iBeaconと違い各々のアプリをインストールする必要がないEddystoneですが、現段階ではChromeアプリが必要な状況です。今後Eddystoneが広まり、OS側でサポートされるようになれば、多くの端末で準備なしに利用できるようになるのではないかと思います。 規格自体はオープンなのでビーコンのデバイスも作りやすいですし、さらにアプリと連携させたい場合もブラウザ(URL)からアプリを起動したりもできるので、さまざまな用途が生まれそうです。

無料で使えるWebプッシュ通知サービスまとめ

Web

プッシュ通知といえば、携帯電話・スマートフォンなどでお馴染みですね。

お知らせや更新通知をそのアプリを使っていないときや、スリープ状態にしている時にも届けてくれるあの仕組みです。

そのような通知方法をウェブブラウザでも実現してくれるのが、Webプッシュ通知です。

ユーザーがウェブページを閲覧していないときでも、あるウェブページからのメッセージやお知らせを受け取ることができるようになります。

最近、Webプッシュ通知を自分のサイトや、ウェブアプリに組み込めるサービスがたくさん出てきたので、その中でも無料で使える・無料プランが用意されているサービスを紹介します!

Pushnate

f:id:kironono:20160830215619p:plain

日時を指定しての配信や、RSSのURLを事前に登録しておき、RSSの更新内容を配信する機能があります。また、ステップ配信として、あらかじめ設定しておいたスケジュールにそってプッシュ配信する機能があったりと、配信方法が豊富なので適用範囲は広そうです。

対応プラットフォームは

JavaScriptを配置することによって、独自ドメインを利用した配信も可能です。

Push7

f:id:kironono:20160830215735p:plain

一般向けとエンタープライズ向けがあります。無料で利用できるのは一般向けです。

iOSアプリを用意することでカバーするプラットフォームを広げているところが面白いです。ユーザーにアプリのインストールを促すのは難しいとは思いますが、現状iOSに対応するには、この方法しかないので仕方がないのかなと思います。

公開APIが用意されているので、外部からプッシュ通知の配信を行うことができます。既存のCMSや、WordPressと連携させたりすることができるのは嬉しいです。

対応プラットフォームは

iOSはPush7の用意するiOSアプリをユーザーがインストールすることで対応。

bpush

f:id:kironono:20160830220106p:plain

配信時間を指定してのスケジュール配信や、RSSの更新をプッシュ通知することができます。

また、Push7と同様に公開APIが用意されているので、外部からプッシュ通知を行うことができます。

対応プラットフォームは

プッシュさん

f:id:kironono:20160830220219p:plain

配信予定日時を指定してプッシュ通知を配信することができます。

機能はまだ少なく、対応プラットフォームもAndroidChromeのみです。PCのChromeには近日対応予定だそうです。

対応プラットフォームは

まとめ

簡単にですが、無料プランがあるWebプッシュ通知サービスをいくつか紹介しました。

今回Webプッシュ通知サービスを調べたのは、ウェブアプリで長い時間がかかるタスク(例えばたくさんのファイルのアップロードとか)が完了したときに、そのタスクの終了をユーザーに通知できないかなと思ったのがきっかけでした。

Webプッシュ通知はまだ新しいブラウザでしか利用できない等の制約がありますが、サイトを離れていてもメッセージを届けることができる仕組みなので、今後多く利用されていくと思います。

モダンWeb ―新しいWebプラットフォームの基盤技術

モダンWeb ―新しいWebプラットフォームの基盤技術

EOS 5D Mark Ⅳが正式発表されましたね!問題はいつ買うか...

一眼レフ カメラ

f:id:kironono:20160828221524p:plain

キャノンの一眼レフデジタルカメラ EOS 5D Mark Ⅳ がついに正式発表されましたね!(遅い)

8月25日に正式発表されて、発売日は2016年9月8日だそうです!

8月に入ったあたりから最終版と思われるスペック、価格の予想が各所で噂され、期待を膨らませながら発表を待っていました。

キャノンの公式ページはこちら!

cweb.canon.jp

EOS 5D Mark Ⅳのスペック

5D Mark Ⅳのスペックをざっくりおさらいすると以下のようになります。

  • 有効画素数 約3040万画素のフルサイズCMOSセンサー
  • ISO感度 100〜32000、感度拡張でISO50相当、ISO51200相当、ISO102400相当
  • 測距点61点
  • 高速連続撮影 最大7コマ/秒
  • デュアルピクセルCMOS AF
  • SD/CFのマルチスロット
  • タッチパネル、バリアングルなし
  • 動画撮影 4K30p(4K60pはなし)、FullHD60p、MotionJPEG
  • タイムラプス動画 撮影間隔、撮影回数の設定
  • Wi-Fi/NFC/GPS内蔵

ライブビュー時のオートフォーカスのデュアルピクセルCMOS AFはEOS 70D、EOS 80Dでも採用されていたオートフォーカス方式ですね、動画撮影時にとっても重宝します。

5D Mark Ⅲから全体的にスペックアップされていて、正当な進化を遂げたと言われていますが、発売時の初値が予想よりかなり高かったようです。

キャノンのオンラインショップでは、ボディのみで税込 432,500円になっています。

EOS 5D Mark Ⅳの仕様をみての感想

静止画だけでなく動画を撮る用途としても使いたい私としては、4K動画が撮れるのは嬉しいですが、できればバリアングル液晶つけて欲しかった! これについては、外部のHDMI接続のモニター用ディスプレイを用意すればいいんですけど…。

HDMIの外部出力はFullHDまでの出力らしいので、あくまでモニター用途ですね。

あとは、有効画素数が3040万画素になったことで、最大6720 x 4480のスチルが撮れるのですが、このサイズが微妙に8Kの解像度(7680 x 4320)に届いていないのが惜しかった!

8Kの解像度以上でスチルが撮れれば、タイムラプス動画を作るときに8Kとして作れたのになぁという感じです。

惜しい、みたいな感想しか書いてないですが、私の感じる欠点らしいところはこれくらいですねぇ。。

連続撮影のコマ数が7コマは少ないという意見もありますが、あまり連写する被写体は取らないので気になっていません。

買うのか

で、EOS 5D Mark Ⅳを買うのかって話ですが、買います!

ただ、ボディだけで40万以上するので、ポンッと買うわけにもいかず、少し価格の変動がどうなるかをウォッチする予定です。

今回発表されたのは、ボディと新しいレンズがあるのですが、EF24-105L IS II USM というレンズは 10月下旬発売を予定しているみたいです。

ですので、このレンズが出る時期くらいに購入時期を検討したいとおもいます!