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.bb
0時から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)で対話的実行ができるようになるといいと思う。