5月312013
0
#!/usr/bin/env ruby
require 'rubygems'
require 'arduino_firmata'
arduino = ArduinoFirmata.connect
puts arduino.version
buf = []
loop do
buf << arduino.analog_read(0)
puts buf.max
buf = [] if buf.size > 1000
end
いくつかプラグインを作ってみて(RocketIOやLindaなど)踏んだ地雷について書いておく。
ちなみに作るにあたって読んだドキュメントは
Sinatra: Writing Extensions
Sinatra Extension を書くお作法、というか我流 #Ruby #Sinatra – Qiita [キータ]
Sinatra でカスタムセッター/ゲッターを定義したり、それにより処理をフックしたりする #Ruby #Sinatra – Qiita [キータ]
とsinatra-contribとeventmachineとrackのコード
だけです。
def self.startどういうわけか、EventMachineが起動する前でもEM::deferは使えるので、そこでEM::reactor_running?を待ってやるとよい。
return if @@running
@@running = true
EM::defer do
while !EM::reactor_running? do
sleep 1
end
puts "Sinatra::WebSocketIO.start port:#{options[:port]}"
EM::WebSocket.run :host => "0.0.0.0", :port => options[:port] do |ws|
ws.onopen do |handshake|
## (略)
get '/*' do
## 略
end
インストール
% gem install em-rocketio-linda-client
GitBattleやったら217個って表示された。
2011年11月にgithubのリポジトリ数が100超えたからだいたい1年半で100個ペースだ
この調子だとすぐに1人で1000リポジトリとか持つようになるから、新しいUIが必要になると思う
でも自分のリポジトリのissueを一覧するツールとか作ってはかどっているし、APIが綺麗だから文句あれば自分で作ればいい気もする