0

express+socket.io+mongooseのテンプレ作った

作った
https://github.com/shokai/express-template

簡単なチャット。チャットログはMongoDBに保存する。
https://express-chat-template.herokuapp.com/


ガチwebサービスではなくゆるふわプロトタイピング用のテンプレになっている。expressあんまりよくわかってないから変な所あったらissueとか建てて盛大にdisって欲しい。
基本的にgeta6/coahを参考にしてるんだけど、ブラウザの為にcoffeeをコンパイルしてjsにするとか諸々の強烈なasset pipelineを取り外した。

構成はこんな感じ

  • express 4.4
  • socket.io 1.0
  • mongoose 3.8
  • coffee-script
  • ブラウザもcoffee-script.js
  • herokuにデプロイ
  • mocha + supertest + Travic CI
  • gruntでwatchしてcoffeelintとmocha回す


ブラウザでcoffeeコンパイルして実行してるけど、文法エラーはlintかけてるし、実行時エラーはコンソールにも下の様にちゃんと出るからsourcemapとかいらないしでだいぶすっきり構成になったと思う。

0

Node.jsで実世界UI

先週のReal.UIで発表してきたスライドです。ハードウェアとかNode.jsでやったほうが安定するしいいよという話をした。

会場のスマートニュース社は勉強会とかできる場所とオフィスとその真ん中にビールとか置いてあるカウンターがあってフロアがスコーンと抜けるように全部見えてて広々していた。ビール何種類もあってよかった。おいしかったです。



あと発表後にBlendMicroを買えるページがわからない、って言われて、その場で調べてみたらたしかにBlendMicroのサイトわかりづらい。

ここで買った。
Blend Micro [AH00007] – €25.40 : Arduino Store – community and electronics

通常のarduinoよりも低い3Vで駆動するので、太陽電池でも動かせたりする。面白い。

0

どうやって部品を選ぶかについての話

いい話だった

どうやって部品を選ぶかについての話 | スイッチサイエンス マガジン

俺はスイッチサイエンスの人ほど本格的に実装しないけど、部品(ソフトウェアも含めて)の選び方について便乗して書いてみる。
IRKit、BlendMicro、DigiSpark、Jawbone Up24もこのへんを概ねクリアしてたので安心して買えた。


生きてる

プロジェクトが死んでる可能性がある。リポジトリの最終更新日を確認するべき。


テストされてる

ハードウェアだとテストコード書くの難しいし、テスト用の治具とか必要だったりするけど、それでもテストコードだけでも同梱されてると安心できる。ちゃんとテストしてるんだなと思えるしテスト漏れてそうな所とかもチェックできる。
ソフトウェアのライブラリの場合はテスト読んで、手元でテスト走らせてみる。


縛られてない

ライセンスの問題があるかもしれない。Web APIの場合、無料で使うと1日の使用回数が決まっていたりする。


オープンソース

これは「すでに使っている人がいる」にも関係してるけど、最近は誰も使ってなくても買ったりしてる。
IRKit、BlendMicro、DigiSparkあたりは誰も使ってなくてもファームウェアと回路図が見れたので事前にチェックできた。実物が手元に無くても自分の目でクオリティを確かめられるのはいいと思う。カタログスペックよりコードの方が信用できる。不穏な雰囲気があるコードとか見ればすぐわかるから読んだ方が早い。


オープンな仕様、ドキュメント

Jawbone Up24とか、「認証はOAuth2、APIはRESTでJSON」って書いてあってそれなら買うよってなる。知ってる仕様でAPI作られてるのは安心感がある。
Nike FuelBandはパートナー企業にしかAPI公開されてないので安心してスルーできた。


GitHubにある

GitHubにソースコードがあると、pull requestが使えるから不具合見つけたらパッチを送りやすい。
GitHub以外だとMLとか独自仕様の掲示板とか使わなければならなくなって、つらい。
パッチが送れないと、本体がバージョンアップした時にまた自前で治さないとならないので面倒くさい。

0

部屋がYo

Yo Developers API — Medium
から申請してAPI tokenをもらった。
1日後ぐらいにメールで来る。とりあえず「DELTAS112」と「IOTA411」の2つ申請した。


% curl --data=api_token=(token) http://api.justyo.co/yoall/
で全員にyo送れる。


nodeで書くとこんな感じ
request = require 'request'

yo = (token) ->
request.post "http://api.justyo.co/yoall/", {
form: {api_token: token}
}, (err, res, body) ->
console.log err
console.log body

yo "さっき取ったTOKEN"


増井研はDeltaS112とIota411という部屋にいて、それぞれの部屋のセンサが明るさとかlindaで流しているので、電気ついたらYoするようにした
もともと、部屋で電気つけたりすると「電気がつきました」とか音声で通知してたんだけど、
Yoを加えたら「デルタで」「Yo」「電気がつきました」とか陽気になった。



http://node-linda-base.herokuapp.com/delta?type=sensor
http://node-linda-base.herokuapp.com/iota?type=sensor


https://github.com/masuilab/linda-worker/blob/master/scripts/yo.coffee

0

twitterに定期的にアニメgifを投稿する

twitterにアニメgifが投稿できて、twitter.com上に埋め込まれた状態で再生できるようになってた。
今日からできるようになったらしい。



便利ツール紹介

gifsnap
CLIからMacのカメラを使って撮影、アニメgifを作るツール。
内部でimagesnapとimagemagickを使っている。


tw
CLIからtweetできるtwitterクライアント。–file=ファイル名 で画像もアップロードしてtweetできる。


now
今の状況に応じてexit status 0か1を返すコマンド。
詳しくはnowコマンドを作ったに書いた


crontab
なんかどういう仕組みかよくわからないけど、登録しておいたコマンドを定期的に実行してくれる。


組み合わせる

0 */2 * * * (now 'home?' || (say 撮影します && gifsnap /tmp/gifsnap.gif && tw --file=/tmp/gifsnap.gif --user=shokai --yes 定点観測 )) > /dev/null 2>&1
こうしておくと、家にいない時は2時間毎にアニメgifを撮影してアップロードしてくれる。
撮影前に「撮影します」って言ってくれるから安心。