Chamberっていうbotをつくった
https://github.com/rightgo09/chamber
外国人と英語でチャットしているときに、よく「ん?」となって辞書を引くのがしんどくなったので
翻訳してくれるbotをつくった。
元ネタはこれ。 http://matome.naver.jp/odai/2136876483489139901
Microsoftの翻訳APIが1ヶ月で2_000_000文字まで無料なのでそれを使った。
アクセストークンが10分で切れるので、少し時間経っただけで取りに行くのが若干だるいけど。
Slackもすごく見やすくてよいサービスですねーって言ってたら
Slack is … launched! Now you can pay us. And everyone can get in. More features. So much other stuff. Some details: https://t.co/cxaC82y5Wy
— Slack (@SlackHQ) 2014, 2月 12
ローンチされたみたいです。お金払わなきゃ。
参考:
gemが突然見えなくなった
今日突然Jenkinsのあるジョブがエラーになってしまった。
↓失敗してたジョブのコンソール表示
[error]: Missing 'redcarpet' gem for Markdown formatting. Install it with `gem install redcarpet`
でもその直前にbundle installはしていて、そこにちゃんとredcarpetも入っている。
Using redcarpet (2.3.0)
一応、Jenkinsのworkspaceに直接入って同じコマンドを叩いてみたけれど、エラーになった。
ただちょっとメッセージが違った。
dlopen(…/workspace/vendor/bundle/ruby/1.9.1/gems/redcarpet-2.3.0/lib/redcarpet.bundle, 9): Library not loaded: …/ruby/lib/libruby.1.9.1.dylib Referenced from: …/workspace/vendor/bundle/ruby/1.9.1/gems/redcarpet-2.3.0/lib/redcarpet.bundle Reason: image not found - …/workspace/vendor/bundle/ruby/1.9.1/gems/redcarpet-2.3.0/lib/redcarpet.bundle
何かしたっけ……と思い返したところ、homebrew経由でhttpdを入れていた。
それだけでなんで失敗このジョブが失敗することにつながったのかはいまひとつ分からないけれど、
エラーメッセージでググったら同じようなひとがいて、
メッセージの見たままdylibが読めないだけだから、シンボリックリンク張ったりPATH変更したりでなんとかなるみたいだった。
gemを入れ直しても解決するようだったので、ローカルにインストールしてたvendor/bundleを一回消して、もう一回bundle installしたらJenkinsのジョブの方もちゃんと動いた。
よかった。
ensureはループ処理内でも動く
メモ。ensureはちゃんとnextとかbreakも捕捉してくれる。さすがensure。
%w[ normal raise next break ].each do |w| puts "===============================" puts "w: #{w}" begin raise if w == "raise" next if w == "next" break if w == "break" rescue puts "raise" else puts "else" ensure puts "ensure" end end
=============================== w: normal else ensure =============================== w: raise raise ensure =============================== w: next ensure =============================== w: break ensure