2013/03/14


なるほど。
JScript でハマる日々 - m2
@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
http://d.hatena.ne.jp/miya2000/20090823/p0
CScript用shebangすな。
いままでバッチファイルでネットワーク扱うならcurl使ってたけど、curlインストールされてないマシンで他の人に使ってもらうなら、標準で入ってるだろうCScriptやXMLHTTPが使えてウマーなのではないだろうか。
@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
 
var xhr = (function() {
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {};
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {};
})();
xhr.open("GET""http://twitter.com/statuses/public_timeline.json"false);
xhr.send(null);
var statuses = eval(xhr.responseText);
for (var n in statuses) {
    WScript.Echo(statuses[n].user.screen_name + ': ' + statuses[n].text);
}
 
// vim:set ft=javascript:

ちなみにvimmerならmodelineでjavascriptにしとくと良いね。
Posted at by




Perl ユーザといえば IRC で囲ってるイメージがありますが実はそうではなく、単にシャイなだけなんです。(要出典)
Perl をゆるふわと語ろうというチャットルームが Lingr に出来たので、Perl に興味のある方は参加してみてはどうでしょうか。
Perlの話題を日本語で – Lingr
http://lingr.com/room/perl_jp
ゆるふわなかんじで perl の話題をするためのチャットルームをつくってみた - tokuhirom's blog.

ゆるふわなかんじで perl の話題をするためのチャットルームをつくってみた 安定的な Perl アプリケーション運用のための perlbrew 運用テクニック git merge が、必ずエディタを...

http://blog.64p.org/entry/2013/03/13/195515
チャットルームには結構 Perl 有識者が揃っていて、色んな話しが出てきます。おもしろい人ばかりなのでウォッチするのも面白いと思いますよ。
また bot も作れるので Perl で面白い bot を作ったら報告してみてはどうでしょうか。
Posted at by



2013/03/13


mruby で作られた bot を lingr 上で動作させる事に成功した。
mattn/mruby-lingrbot - GitHub
https://github.com/mattn/mruby-lingrbot
build_config.rb はこんな感じ。
MRuby::Build.new do |conf|
  toolchain :gcc

  conf.gem :git => 'https://github.com/mattn/mruby-sha1.git'
  conf.gem :git => 'https://github.com/mattn/mruby-sinatic.git'
  conf.gem :git => 'https://github.com/mattn/mruby-http.git'
  conf.gem :git => 'https://github.com/mattn/mruby-uv.git'
  conf.gem :git => 'https://github.com/mattn/mruby-json.git'
  conf.gem :git => 'https://github.com/mattn/mruby-sandbox.git'
end
そして Sinatic を使ったコードはこんな感じ。 #!mruby

sb = Sandbox.new

get "/lingr" do |rparam|
  "ワシもmrubyじゃ"
end

post "/lingr" do |rparam|
  json = JSON.parse(r.body)
  ret = ''
  json["events"].each do |e|
    if e["message"] && e["message"]["text"]
      m = e["message"]["text"].split(" "2)
      if m[0] == '!mruby'
        if m.size == 1
          ret = 'ワシがmrubyじゃ'
        elsif m.size == 2
          ret = sb.eval(m[1])
        end
      end
    end
  end
  ret
end

Sinatic.run :port => 8888
いい感じに Sinatra してていいですね。!mruby 1+2 みたいに発言すると、eval して返してくれるのですが、そのまま eval させると、UV の API でセキュリティ的にまずいので、Sandbox を用意しました。
mattn/mruby-sandbox - GitHub
https://github.com/mattn/mruby-sandbox
これを使うと実行しているmrubyとは別のスタックマシン上で制限された mruby が動作します。とある人に「欲しい」と言われて10分程度で作りました。今のところ、ご機嫌よく動いてます。
ちなみにこの bot にアイコンを付けたいので、誰か mruby のアイコン描いて下さい。お願いします。
icon ・ Issue #998 - mruby/mruby - GitHub
https://github.com/mruby/mruby/issues/998
試験的なのでちょくちょく落とすと思います。
Posted at by