KoaをES6で書くサンプルを探していたら、KOANというBoilerplateを見つけました。Koa、AngularJS、Node.jsのacronymのようです。個人的にAngularJSは苦手なのでKoaとNodeだけでも良かったのにと思いました。スウェーデンのTeoman Soygul氏が開発しています。禅の公案から来ているみたいです。KOANとKATAとかは西洋から見るとマトリックスの世界でしょうか。
ES6で書くIsomorphicアプリ入門 - Part2: ブラウザから使えるREPL
ES6で書くIsomorphicアプリ開発はまだGetting Started以前の知識しかありません。道のりは長そうですが、次世代の開発の準備は少しずつしておきたいです。ClojureScriptにはiOSで動くAmblyというREPLもあります。気になったときにターミナルを開かなくてもどこでもREPLが使えるようになればとても便利です。電卓の代わりにもなります。
ES6で書くIsomorphicアプリ入門 - Part1: リソース
サーバーサイドはio.jsとKoa、クライアントサイドはReactを使って、ES6で書くIsomorphicアプリを開発してみようと思います。まずはBoilerplateやチュートリアル、ライブラリなどのリソースを集めてみました。Koa、Reactに加えてBabel、Webpack or Browserifyというのが基本的なアーキテクチャになりそうです。
Raspberry Pi 2からBME280環境センサのデータをPythonでMQTT publishする
Raspberry Pi 2のPythonを使いスイッチサイエンスが販売しているBME280の環境センサからデータを取れるようになりました。の環境センサのデータを取れるようになりました。次はPahoのMQTTクライアントをインストールしてpublishしてみます。
Raspberry Pi 2で温湿度・気圧センサのBME280をPythonから使う
スイッチサイエンスから温湿度・気圧センサのBME280が発売されています。同じBosch製のBMP180に比べると湿度も計測できます。BME280一つあれば環境センサとして便利に使えそうです。残念なことにBoschからはCのBME280_driverしか公開されておらず、使い方のページや、The New Bosch BME280 (Temp, Humidity, BMP)のブログなどもArduinoのサンプルコードしか見つかりませんでした。Raspberry Pi用にPythonで書き換えるのは敷居が高くて困っていると、ありがたいことにスイッチサイエンスさんが速攻でPythonのライブラリを書いてくれました。
Raspberry Pi 2で気温・気圧・高度センサのBMP180を使う
以前EdisonとArduinoでBMP180の気温・気圧・高度センサを使ってみました。Raspberry Piにはプルアップ用抵抗が最初から付いています。BMP180などI2C通信するブレイクアウトの場合はGPIOのプルアップが不要で使えます。また、AdafruitからBMP用のPythonライブラリも提供されているので初心者に優しいセンサーです。Arduino、Edison、RaspberryPiのどれでも使えるので1つあるといろいろ楽しめます。
Koa入門 - Part4: ES6でIsomorphicなDeku
Reactのリアクティブとコンポーネント指向の考えはすごく良いのですが、どうも書き方に馴染めません。IsomorphicもJavaScriptで書くよりClojureで書く方が楽しいのでReagentを使っています。Node.jsのES6時代に向けたKoaのIsomorphicを調べていると、horseやDekuといったライブラリがありました。今回はDekuの方を試してみます。
Koa入門 - Part3: ジェネレータなどKoaの特徴
前回までにKoaのアプリを開発するためのio.jsのDockerイメージを作成したり、ES6で書いたJavaScriptのコンパイルの方法を試しました。今回はジェネレータなどKoaで開発する場合に重要な特徴を見ていきます。
Koa入門 - Part2: babel/registerでES6を自動コンパイル
BabelはES6のコードをES5にコンパイルしてくれるツールです。以前は6to5と呼ばれていました。ECMAScript 6(ES6)が正式にECMAScript 2015(ES2015)という名前になったのでツール名も変更になったようです。ただ略称の方はES6で定着しているのでこのまま使いそうです。io.jsではKoaのジェネレータ関数などES6の機能を--harmmonyフラグを付けなくても使えます。せっかくなのですべてES6で書きたいところです。io.jsではV8に追加されるES6の機能を積極的にサポートしていますが、全部ではないので現状はBabelでES5に変換する必要があります。
Koa入門 - Part1: io.js on Docker
Node.jsでAPIを作るときのフレームワークに何が良いかいろいろと試しています。Hapi.js、LoopBack、Salis.jsと試してみました。Koaは以前から気になっていましたが、ちょっと難しい印象があって避けていました。しかしES6ことECMAScript 2015がいよいよ承認されました。もたもたしているとES7やES8もすぐに来てしまいます。もうクライアント側もサーバー側もES6に移行していかないといけないです。