今更ながらTwitterのデータを検索して遊んでいます。Twitterのデータはリアルタイム性がありメタデータも豊富に定義されています。世界中の人が勝手につぶやいてくれるので、属性をもつランダムなテキストデータを簡単に取得できます。最初にNode.jsのCommander.jsで簡単なCLIのインタフェースを用意します。REST APIのGET search/tweetsとStreaming APIのPOST statuses/filterをCLIから試しながらどんなデータが取得できるかプロトタイプします。
InfluxDBとElasticSearchとGrafanaのためdocker-compose.yml
温湿度センサのDHT11で計測した温度と湿度をダッシュボードに表示するための環境を用意します。以前dweet.ioからアボガド果樹園のデータを取得したときにDockerコンテナで構築しました。このときはコンテナを個別に作成したのでコンテナの起動が煩雑でした。Docker Composeを使うと1つのYAMLに設定をまとめてdocker-compose upするだけで簡単です。また定義したサービス名がそれぞれの/etc/hostsに設定してくれます。環境変数に設定するホスト名はこのサービス名を使うことができるのでIPアドレスをinspectしてハードコードする必要がありません。
Dockerの/var/lib/dockerを移動する
今使っているクラウドのルートディスクが15GBしかないのでDocker Composeで複数のコンテナを起動して開発しているとすぐに容量不足になります。開発中はよくゴミが出るので定期的に/var/lib/dockerは再作成していますが、もう少し大きなディスクを追加して移動しようと思います。最初は/etc/fstabの記述を間違えてリカバリーモードで起動することになりました。しかもrootのパスワードを忘れてしまいシングルモードで起動する必要があったりと、作業には十分注意が必要です。以下のサイトを参考にしました。最初に読んでいたサイトはmountのbindオプションの使い方が間違っていて混乱してしまいました。Moving docker images location to different partition Moving Docker "stuff" to a Different Drive
Node.jsからGmailの添付ファイルを送信する
誰かにファイルを送信する場合、今の世の中でも普通の人はフォーマットはCSVで方法はメールで欲しいというのがよくあります。スケジュールで自動的にGmailを使って添付メールを送りたかったのでNodemailerを使って書いてみました。本当はちゃんとした内容の添付ファイルなのですが、テスト用にランダム文字列をChance.jsで生成しました。最近lodashが気に入っているので関数型言語っぽい書き方です。
Lisp Flavored Erlang (LFE) のインストール
ElixirのおかげでErlangに注目が集まっています。今までErlangを使ってみたくても、特殊に見える文法に戸惑っていたプログラマに、Ruby風なシンタックスのおかげで敷居が低くなったと思います。一方のLisp Flavored Erlang (LFE)は名前の通りLisp風に書けるErlangです。誰がうれしいのか一瞬よくわかりませんが、Lispには何か避けられない魅力があります。かつてもっと文明的だった時代のエレガントな武器です。
Node.jsでlodashのflowRightを使って関数合成をする
Clojureで関数合成が楽しくなると、Node.jsでも関数型言語っぽく使いたくなります。npmのライブラリにはUnderscore.js、lodash、Ramdaなどあります。ググってみるとlodashが良さそうなので関数のcomposeをしてみます。
RethinkDB on Docker - Part2: 10 Minutes
前回少しだけRethinkDBを使ってみてとてもいい感じで使いやすいです。APIリファレンスもNode.js、Python、Rubyとシンプルでみやすく充実しています。The Thinkerのマスコットもかわいいです。Thirty-second quickstart with RethinkDBに続いてチュートリアルのTen-minute guide with RethinkDB and JavaScriptを試してみます。
RethinkDB on Docker - Part1: 30 Seconds
ClojureのWebアプリのJSONストレージとしてRethinkDBを使ってみようと思います。まずは何も考えずにさくっとDockerで起動してみます。30秒でできるQuick Startとやってみる気になります。developer friendlyを謳うだけのことがありドキュメントサイトがとても充実しています。
ClojureでDatalogやJSON Storageを扱うためのリソース
Clojureの勉強をしていてそろそろデータベースを使いたくなってきました。JDCBでRDBMSに接続するのが一番簡単そうです。せっかくなのでJSON Document StorageやDatalogを選んでみようと思います。まずは情報集めからはじめます。
Figwheelで最新のClojureScriptの開発方法を勉強をする
ClojureScriptやそのエコシステムは絶賛開発中のためライブラリの更新がとても盛んに行われています。2015年に出版されている英語の書籍でもすでに情報が古くなっています。最新の情報をネットで調べてもバージョンが違うと内容が異なっているので自分で手を動かして確認する必要があります。FigwheelのQuick Startを例にして最新のClojureScriptの開発方法を勉強していきます。