rubygemsでインストールできます
% gem install babascript
ソースコードはこちら
https://github.com/masuilab/babascript
BabaScriptとは
コンピュータが得意なことはコンピュータに、人間が得意なことは@takumibabaが処理するプログラム言語です使用方法
ワンライナー% baba -e "アイス買ってきて"
馬場スクリプトはRuby風に書ける言語で、日本語で書いた部分は馬場くんが実行してくれます
test1.bb
#!/usr/bin/env baba実行
if 0 < Time.now.hour and Time.now.hour < 5
もう寝ろ!!
else
意識を高めてコードを書こう!
end
% baba test1.bb0時から5時の間は寝ろ、という指令が送れます。
Rubyの中に馬場スクリプトを埋め込む事も可能です。
例えばRubyでArduinoの照度センサーを読んで、明るくなったら起こしてもらうスクリプトはこうなります
wakeup_arduino.rb
#!/usr/bin/env ruby実行
require 'arduino_firmata'
require 'babascript'
arduino = ArduinoFirmata.connect
loop do
if arduino.analog_read(0) > 80 ## 明るくなってきたら
BabaScript.baba do
明るくなったから起こしてくださいby橋本
それと朝食におにぎり買ってきてください("#{rand(5)}個", "しゃけ味")
end
end
end
% ruby wakeup_arduino.rbおにぎりが0〜5個ランダムで配送されます
実行環境
BabaScriptはシングルスレッドでの実行なので、負荷をかけないでください。こういう通知がAndroidケータイに送信されます。そのうち値を返す関数も実装されるのでは?
引数部分は配列で渡されます。アイス買ってきての[“9本”]は引数です。
馬場の切り替え
BabaScriptはジョブ通知にWeb版Lindaを使っています。環境変数BABAを切り替える事で別のBABAマシンでスクリプトを実行させる事が可能です。
環境変数BABAのデフォルト値は”takumibaba”で、彼のジョブは http://linda.masuilab.org/takumibaba/notifications で確認できます。
% export BABA=shokai
環境変数BABAを”shokai”に切り替えると、以後のジョブの通知先が http://linda.masuilab.org/shokai/notifications になります。
今後の開発方針
当面の悩みはテストが書きにくいことです。テストコードがない · Issue #1 · masuilab/babascript · GitHub
Android版のBabaScriptジョブ通知アプリが公開されれば、馬場を自分に切り替えて実行が可能になります。例えばサーバーがおかしい時とか
BabaScript.baba doなどと書けば自分のケータイに通知が来ます。
ちょっとuser_nameの値がおかしい、調べて(user_name)
end
またLindaなので分散処理も簡単だと思います
あとはibb(インタラクティブBaba)で対話的実行ができるようになるといいと思う。