Archive of posts with tag 'Ruby'
左がGROWTH実験用のFPGAボード。右がRaspberry Pi3。
RubyのGnuplot gemから、時系列データをプロットするときの例。基本的にgnuplotのコマンドラインでやっているように、
set timefmt '%Y-%m-%dT%H:%M:%SZ'
set xdata time
set format x "%H:%M"
を、plotオブジェクトに対してコールしてあげればよい。Ruby + Gnuplotは、ネット上に全然サンプルが載っていないので、たまに大変なのですが、文字列処理やM2XのWeb APIと組み合わせて、簡単にプロットしたいときにはとても便利なのです。
新しいサーバへ移動しました
東京大学のサーバが不釣になって見られなくなっていたHongoWikiを、自前のサーバに移動して再開しました。新しいアドレスは以下のとおりです。そのうち、Googleの検索ランクも戻ってくると思います。あと、Mediawiki→Jekyllの変更にともない、コメント管理サービスDisqusを使ってコメント欄も付けているので、質問や改善のコメントがある人は気軽に書き込んでください。
RubyFitsでFITSファイルをCSVファイルとしてダンプする例題をgistにアップロードしました。
RubyROOTで1次元ヒストグラムのテキストデータを読みこんで、TH1D(Double型の1次元ヒストグラム)に変換し、一次関数+ガウシアンでフィットしてプロットする例を示します。RubyROOTのインストール方法は「RubyROOTをHomebrewでインストールする」を参照してください。
Soki Sakuraiさんのruby-dimensionalを使うと、Rubyで単位付きの計算がとても綺麗にできます。
Amazonのウェブサービスの操作を自動化しています。RubyでMechanizeを使ってAmazonにログインしようとしたのですが、「Cookieを有効にしてください」の表示がでてしまってうまく行きませんでした。
最近Seleniumにハマっています。以下のようにするとスクリーンショットも撮影できてしまいます。
いまさらですがRubyのクラウドAPIであるFog経由でAmazonのSimpleDBを利用する練習として作ったスクリプトをgistにアップロードしておきました。ぼくは自分の写真のデータをバックアップしているAmazon Glacierとの連携や簡単なウェブサービスでの利用を想定していますが、他の誰かの何かの参考になれば。
SublimeText3のRubyモードでEclipseのContet Assistみたいに補完したい
SublimeText 3でRubyスクリプトをコーディングするときに、コンテキストに応じた補完が効くと便利だと思って調べたら、SublimeCodeIntelというプラグインがデファクトスタンダードのようです。Package Controlから、
Shift + Command + P
Installと入力
SublimeCodeIntelを選択
return
としてインストールしました。
動かない問題
早速Rubyスクリプトを書いて、補完が効くかどうか試してみたのですが、コーディング途中に自動的に表示されるはずの補完候補が表示されませんでした。
SublimeCodeIntelのログは~/.codeintel/codeintel.logに記録されるということだったので、
Seleniumでウェブブラウザの操作を自動化しています。社内システムや航空会社の予約システム等のウェブサービスの煩雑な操作のオートメーションに絶大な力を発揮するので感動しているのですが、webページの読み込みのタイミングによっては、たまに以下のような「Element is not currently interactable and may not be manipulated」エラーが出ることがあります。 gems/ selenium-webdriver-2.43.0/lib/selenium/webdriver/safari/bridge.rb:73: in `raw_execute': Element is not currently interactable and may not be manipulated (Selenium::WebDriver::Error::InvalidElementStateError) from gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:616:in `execute' from gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:415:in...
RubyROOTでヒストグラムをDraw()すると、.rootmacros内でgROOT->SetOptStat(0)していても効かずに、図の右上に統計情報が表示されることがあります。見栄えの問題でこの統計情報を消したい場合は、以下のようにしてください。
RubyからCern/ROOTが使える、めちゃくちゃ便利なRubyROOTというツールがあります。JAXAのHirokazu Odakaさんが開発・メンテしてくれています。
Rubyでグラフをプロットする方法をいろいろ調べていますが、matplotlibやflot、protovis/d3.jsに匹敵するようなネイティブのプロッティングライブラリはないんですね。これまで何名かが挑戦しているようなので、これから参戦するのも大変そうです。
Rubyのヒアドキュメントは高機能(ruedapさん)という エントリで、Rubyのヒアドキュメントにおいて、終了ラベルのインデントを無視するオプションが紹介されていました(<<EOSではなく、<<-EOSのように、開始ラベルの先頭にマイナスを付ける)。知らなかった、、、。天体のデータ解析スクリプトをRubyでメタ的に生成する際にヒアドキュメントを多用する場面があるのですが、これが使えるとややソースコードが見やすくなりますね。
1
2
3
4
5
6
7
for i in 0...3 do
puts <<-EOS
ABC
DEF
GHI
EOS
end